C# OracleDBhelper
引用
using System.Configuration;
using System.Data.OracleClient;
连接字符串
<connectionStrings>
<add name="OracleConnString" connectionString="User ID=xxx;Password=xxx;Data Source=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST=IP地址)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))" />
</connectionStrings>
类
public static class OracleDBhelper
{
private static OracleConnection cnn = null;
/// <summary>
/// 连接数据库
/// </summary>
public static OracleConnection Cnn
{
get
{
if (cnn == null)
{
string cnnstr = ConfigurationManager.ConnectionStrings["OracleConnString"].ConnectionString;
cnn = new OracleConnection(cnnstr);
cnn.Open(); }
else if (cnn.State == ConnectionState.Closed)
{
cnn.Open();
}
else if (cnn.State == ConnectionState.Broken)
{
cnn.Close();
cnn.Open();
}
return cnn;
}
} /// <summary>
/// int 增删改功能的Oracle语句。实现增删改功能,返回受影响行数。
/// </summary>
/// <param name="Oracle"></param>
/// <returns></returns>
public static int ExecuteCommand(string Oracle)
{
int intResult = ;
try
{
string cnnstr = ConfigurationManager.ConnectionStrings["OracleConnString"].ConnectionString;
Console.Write(cnnstr);
cnn = new OracleConnection(cnnstr);
cnn.Open();
OracleCommand cmm = new OracleCommand(Oracle, cnn);
intResult = cmm.ExecuteNonQuery();
cmm.Dispose();
}
catch (Exception ex)
{
Console.Write(ex.Message);
throw ex;
}
finally
{
cnn.Close();
cnn.Dispose();
}
return intResult;
} /// <summary>
/// int 增删改功能的Oracle语句。实现增删改功能,返回受影响行数。
/// [where条件时绑定数据,防止注入式攻击]
/// </summary>
/// <param name="Oracle"></param>
/// <returns></returns>
public static int ExecuteCommand(string Oracle, OracleParameter[] sp)
{
int intResult = ;
try
{
OracleCommand cmm = new OracleCommand(Oracle, Cnn);
cmm.Parameters.AddRange(sp);
intResult = cmm.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
cnn.Close();
cnn.Dispose();
}
return intResult;
} /// <summary>
/// string 查询返回单行单列的Oracle语句。( 例:select count(*) from 表名或 select name from 表名 )。
/// </summary>
/// <param name="Oracle"></param>
/// <returns></returns>
public static string ExecuteScalar(string Oracle)
{
OracleCommand cmm = new OracleCommand(Oracle, Cnn);
return cmm.ExecuteScalar().ToString();
} /// <summary>
/// string 查询返回单行单列的Oracle语句。( 例:select count(*) from 表名或 select name from 表名 )。
/// [where条件时绑定数据,防止注入式攻击]
/// </summary>
/// <param name="Oracle"></param>
/// <returns></returns>
public static string ExecuteScalar(string Oracle, OracleParameter[] sp)
{
OracleCommand cmm = new OracleCommand(Oracle, Cnn);
cmm.Parameters.AddRange(sp);
return cmm.ExecuteScalar().ToString();
} /// <summary>
/// OracleDataReader 查询返回符合条件的记录 每次返回一行
/// </summary>
/// <param name="Oracle"></param>
/// <returns></returns>
public static OracleDataReader ExecuteDataReader(string Oracle)
{
OracleCommand cmm = new OracleCommand(Oracle, Cnn);
return cmm.ExecuteReader();
} /// <summary>
/// OracleDataReader 查询返回符合条件的记录 每次返回一行.
/// [where条件时绑定数据,防止注入式攻击]
/// </summary>
/// <param name="Oracle"></param>
/// <returns></returns>
public static OracleDataReader ExecuteDataReader(string Oracle, OracleParameter[] sp)
{
OracleCommand cmm = new OracleCommand(Oracle, Cnn);
cmm.Parameters.AddRange(sp);
return cmm.ExecuteReader();
} /// <summary>
/// DataTable 查询返回符合条件的记录表
/// </summary>
/// <param name="Oracle"></param>
/// <returns></returns>
public static DataTable ExcuteDataTable(string Oracle)
{
OracleCommand cmm = new OracleCommand(Oracle, Cnn);
OracleDataAdapter da = new OracleDataAdapter(cmm);
DataSet ds = new DataSet();
da.Fill(ds);
return ds.Tables[];
} /// <summary>
/// DataTable 查询返回符合条件的记录表
/// [where条件时绑定数据,防止注入式攻击]
/// </summary>
/// <param name="Oracle"></param>
/// <returns></returns>
public static DataTable ExcuteDataTable(string Oracle, OracleParameter[] sp)
{
OracleCommand cmm = new OracleCommand(Oracle, Cnn);
cmm.Parameters.AddRange(sp);
OracleDataAdapter da = new OracleDataAdapter(cmm);
DataSet ds = new DataSet();
da.Fill(ds);
return ds.Tables[];
} /// <summary>
/// DataTable 查询返回DataTable 带有分页参数,startRecord 开始记录数,maxRecords 最大记录数 适用于分页控件
/// startRecord :(AspNetPager1.CurrnetPageIndex - 1 )*AspNetPager1.Pagesize
/// maxRecords:AspNetPager1.pagesize
/// </summary>
/// <param name="Oracle"></param>
/// <param name="startRecord"></param>
/// <param name="maxRecords"></param>
/// <returns></returns>
public static DataTable DataTablePage(string Oracle, int startRecord, int maxRecords)
{
OracleCommand cmm = new OracleCommand(Oracle, Cnn);
OracleDataAdapter sdp = new OracleDataAdapter(cmm);
DataTable dt = new DataTable();
sdp.Fill(startRecord, maxRecords, dt);
return dt;
} /// <summary>
/// DataTable 查询返回【存储过程的Oracle语句】
///
/// </summary>
/// <param name="Oracle"></param>
/// <returns></returns>
public static DataTable ExcuteDataTableByProcedure(string procedure, OracleParameter[] sp)
{
OracleCommand cmm = new OracleCommand(procedure, Cnn);
cmm.CommandType = CommandType.StoredProcedure;
cmm.Parameters.AddRange(sp);
OracleDataAdapter da = new OracleDataAdapter(cmm);
DataSet ds = new DataSet();
da.Fill(ds);
return ds.Tables[];
}
}
使用
DataTable result = DBhelper.ExcuteDataTable(sql); int result = DBhelper.ExecuteCommand(sql);
C# OracleDBhelper的更多相关文章
- 关于oracle存储过程的一些知识点
一.创建一个存储过程,批量清空数据库中所有表的数据. --清空数据库中所有表的数据 create or replace procedure truncateAllTables as v_sql ); ...
- 我也来学着写写WINDOWS服务-解析xml抓取数据并插入数据库
项目告一段落,快到一年时间开发了两个系统,一个客户已经在试用,一个进入客户测试阶段,中间突然被项目经理(更喜欢叫他W工)分派一个每隔两小时用windows服务去抓取客户提供的外网xml,解析该xml, ...
- Spring IOC以及三种注入方式
IOC是spring的最基础部分,也是核心模块,Spring的其他组件模块和应用开发都是以它为基础的.IOC把spring的面向接口编程和松耦合的思想体现的淋漓尽致. IOC概念 IOC(Invers ...
- 基于Windows服务的WCF
(1)创建WCF 代码示例: [ServiceContract] public interface ILimsDBService { [OperationContract] int ExecuteSq ...
- Oracle DBHelper 第二版
public static class OracleDBHelper { public static OracleCommand cmd = null; public static OracleCon ...
- 基于ManagedDataAccess开发的OracleDBHelpe工具集伸手党的福音
在使用前先加入ManagedDataAccessDLL文件方可使用 添加方法:右键项目.点击管理NuGet程序包,点击浏览,在输入框内输入ManagedDataAccess,再点击安装即可 Oracl ...
随机推荐
- ExtJS 4.2 评分组件
上一文章是扩展ExtJS自带的Date组件.在这里将创建一个评分组件. 目录 1. 介绍 2. 示例 3. 资源下载 1. 介绍 代码参考的是 Sencha Touch 2上的一个RatingStar ...
- Spring之旅
Java使得以模块化构建复杂应用系统成为可能,它为Applet而来,但为组件化而留. Spring是一个开源的框架,最早由Rod Johnson创建.Spring是为了解决企业级应用开发的复杂性而创建 ...
- Android性能优化之巧用软引用与弱引用优化内存使用
前言: 从事Android开发的同学都知道移动设备的内存使用是非常敏感的话题,今天我们来看下如何使用软引用与弱引用来优化内存使用.下面来理解几个概念. 1.StrongReference(强引用) 强 ...
- 学习ASP.NET Core,怎能不了解请求处理管道[2]: 服务器在管道中的“龙头”地位
ASP.NET Core管道由注册的服务器和一系列中间件构成.我们在上一篇中深入剖析了中间件,现在我们来了解一下服务器.服务器是ASP .NET Core管道的第一个节点,它负责完整请求的监听和接收, ...
- javascript表单的Ajax 提交插件的使用
Ajax 提交插件 form.js 表单的下载地址:官方网站:http://malsup.com/jquery/form/ form.js 插件有两个核心方法:ajaxForm()和ajaxSubmi ...
- Xamarin+Prism小试牛刀:定制跨平台Outlook邮箱应用(后续)
在[Xamarin+Prism小试牛刀:定制跨平台Outlook邮箱应用]里面提到了Microsoft 身份认证,其实这也是一大块需要注意的地方,特作为后续补充这些知识点.上章是使用了Microsof ...
- 【定有惊喜】android程序员如何做自己的API接口?php与android的良好交互(附环境搭建),让前端数据动起来~
一.写在前面 web开发有前端和后端之分,其实android还是有前端和后端之分.android开发就相当于手机app的前端,一般都是php+android或者jsp+android开发.androi ...
- 利用apply()或者rest参数来实现用数组传递函数参数
关于call()和apply()的用法,MDN文档里写的非常清晰明白,在这里就不多做记录了. https://developer.mozilla.org/zh-CN/docs/Web/JavaScri ...
- 使用HttpClient的优解
新工作入职不满半周,目前仍然还在交接工作,适应环境当中,笔者不得不说看别人的源码实在是令人痛苦.所幸今天终于将大部分工作流畅地看了一遍,接下来就是熟悉框架技术的阶段了. 也正是在看源码的过程当中,有一 ...
- C++整数转字符串的一种方法
#include <sstream> //ostringstream, ostringstream::str() ostringstream stream; stream << ...