oracle封装OracleHelper
1.Oracle 封装类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Oracle.ManagedDataAccess.Client;
using System.Data;
using System.Data.SqlClient; namespace OracleHelper
{
public static class OracleSQLHelper
{
//从配置文件中获取连接字符串 readonly修饰的变量只能在初始化或构造函数中赋值;其他地方只能读取
//private static readonly string constr = ConfigurationManager.ConnectionStrings["OperationHistory"].ConnectionString;
//private static readonly string constr = "Data Source=DELLYS;Initial Catalog=ceshi;User=sa;PassWord=123";
private static string constr = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=130.147.246.144)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ECMS)));Persist Security Info=True;User ID=system;Password=Service01;"; /// <summary>
/// 增、删、改的方法[ExecuteNonQuery] 返回所影响的行数,执行其他
/// </summary>
/// <param name="sql">Sql命令</param>
/// <param name="cmdtype">SQL语句(CommandType.Text)或者存储过程(CommandType.StoredProcedure)</param>
/// <param name="pms"></param>
/// <returns></returns>
public static int ExecuteNonQuery(string sql, CommandType cmdtype, params OracleParameter[] pms)
{
int i = -;
try
{
using (OracleConnection con = new OracleConnection(constr))
{
using (OracleCommand cmd = new OracleCommand(sql, con))
{
//存储过程或者Sql语句
cmd.CommandType = cmdtype;
if (pms != null)
{
cmd.Parameters.AddRange(pms);
} con.Open();
i = cmd.ExecuteNonQuery();
}
}
}
catch (Exception)
{
throw;
} return i;
} /// <summary>
/// 执行查询、查询多少条数据;返回第一行,第一列方法[ExecuteScalar] 返回-1执行失败
/// </summary>
/// <param name="sql">Sql命令</param>
/// <param name="cmdtype">SQL语句(CommandType.Text)或者存储过程(CommandType.StoredProcedure)</param>
/// <param name="pms"></param>
/// <returns></returns>
public static object ExecuteScalar(string sql, CommandType cmdtype, params OracleParameter[] pms)
{
try
{
using (OracleConnection con = new OracleConnection(constr))
{
using (OracleCommand cmd = new OracleCommand(sql, con))
{
//存储过程或者Sql语句
cmd.CommandType = cmdtype;
if (pms != null)
{
cmd.Parameters.AddRange(pms);
} con.Open();
return cmd.ExecuteScalar();
}
}
}
catch (Exception)
{
throw;
}
} /// <summary>
/// 执行查询,返回多行、多列的方法ExecuteReader()
/// </summary>
/// <param name="sql">Sql命令</param>
/// <param name="cmdtype">SQL语句(CommandType.Text)或者存储过程(CommandType.StoredProcedure)</param>
/// <param name="pms"></param>
/// <returns></returns>
public static OracleDataReader ExecuteReader(string sql, CommandType cmdtype, params OracleParameter[] pms)
{
using (OracleConnection con = new OracleConnection(constr))
{
using (OracleCommand cmd = new OracleCommand(sql, con))
{
//存储过程或者Sql语句
cmd.CommandType = cmdtype;
if (pms != null)
{
cmd.Parameters.AddRange(pms);
} try
{
con.Open();
return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
}
catch
{
con.Close();
con.Dispose();
throw;
}
}
}
} /// <summary>
/// 执行返回多个查询时使用,返回DataTable类型
/// </summary>
/// <param name="sql">Sql命令</param>
/// <param name="cmdtype">SQL语句(CommandType.Text)或者存储过程(CommandType.StoredProcedure)</param>
/// <param name="pms">参数</param>
/// <returns></returns>
public static DataTable ExecuteDataTable(string sql, CommandType cmdtype, params OracleParameter[] pms)
{
DataTable dt = new DataTable();
try
{
//通过adapter读取数据。
using (OracleDataAdapter adapter = new OracleDataAdapter(sql, constr))
{
adapter.SelectCommand.CommandType = cmdtype;
if (pms != null)
{
adapter.SelectCommand.Parameters.AddRange(pms);
} adapter.Fill(dt);
return dt;
}
}
catch (Exception)
{
throw;
}
} /// <summary>
/// 需要获得多个结果集的时候用该方法,返回DataSet对象。
/// </summary>
/// <param name="sql语句"></param>
/// <returns></returns> public static DataSet ExecuteDataSet(string sql, params OracleParameter[] pms)
{
using (OracleConnection con = new OracleConnection(constr))
{
//数据适配器
OracleDataAdapter sqlda = new OracleDataAdapter(sql, con);
sqlda.SelectCommand.Parameters.AddRange(pms);
DataSet ds = new DataSet();
sqlda.Fill(ds);
return ds;
//不需要打开和关闭链接.
}
}
}
}
oracle封装OracleHelper的更多相关文章
- C/C++ 开源库及示例代码
C/C++ 开源库及示例代码 Table of Contents 说明 1 综合性的库 2 数据结构 & 算法 2.1 容器 2.1.1 标准容器 2.1.2 Lockfree 的容器 2.1 ...
- C#工具类OracleHelper,基于Oracle.ManagedDataAccess.Client封装
基于Oracle.ManagedDataAccess.Client封装的Oracle工具类OracleHelper,代码如下: using System; using System.Data; usi ...
- OracleHelper(对增删改查分页查询操作进行了面向对象的封装,对批量增删改操作的事务封装)
公司的一个新项目使用ASP.NET MVC开发,经理让我写个OracleHelper,我从网上找了一个比较全的OracleHelper类,缺点是查询的时候返回DataSet,数据增删改要写很多代码(当 ...
- [转]Oracle分页之二:自定义web分页控件的封装
本文转自:http://www.cnblogs.com/scy251147/archive/2011/04/16/2018326.html 上节中,讲述的就是Oracle存储过程分页的使用方式,但是如 ...
- 连接Oracle数据库的OracleHelper.cs
using System; using System.Configuration; using System.Data; using System.Data.OracleClient; using S ...
- PLS-00306:错误解决思路 - OracleHelper 执行Oracle函数的坑
如果你是像我一样初次使用Net+Oracle的结合,我想你会跟我一样,有很大的概率碰到这个问题 ==================================================== ...
- OracleHelper[.Net 连接Oracle数据库的封装类]
using System; using System.Configuration; using System.Data; using System.Data.OracleClient; using S ...
- Oracle操作数据库oracleHelper
1 Oracle OracleHelper //============================================================================ ...
- C#学习--Oracle数据库基本操作(连接、增、删、改、查)封装
写在前面: SQLserver的C#封装:https://www.cnblogs.com/mexihq/p/11636785.html 类似于上篇有关SQLserver的C#封装,小编对Oracle数 ...
随机推荐
- HUT 排序训练赛 G - Clock
Clock Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u [Submit] [Go ...
- ElasticSearch 线程池类型分析之 ResizableBlockingQueue
ElasticSearch 线程池类型分析之 ResizableBlockingQueue 在上一篇文章 ElasticSearch 线程池类型分析之 ExecutorScalingQueue的末尾, ...
- FindWindow和FindWindowEx函数使用
FindWindow( lpClassName, {窗口的类名} lpWindowName: PChar {窗口的标题} ): HWND; {返回窗口的 ...
- 使用SqlConnectionStringBuilder构造数据库连接字符串
在实际开发过程中,很多时候会拷贝一个现有的数据库连接字符串,修改对应的数据库名.用户名.密码等配置成新的数据库连接字符串.但是有时候我们需要增加一些额外的配置,比如超时时间,最大连接池等,此时我们可以 ...
- C# 网络连接中异常断线的处理:ReceiveTimeout, SendTimeout 及 KeepAliveValues(设置心跳)
C# 网络连接中异常断线的处理:ReceiveTimeout, SendTimeout 及 KeepAliveValues(设置心跳) 在使用 TcpClient 网络连接中常常会发生客户端连接异常断 ...
- ASP.NET SignalR 系列(九)之源码与总结
1.SignalR 1.0与2.0有些不同,以上篇章均只支持2.0+ 2.必须注意客户端调用服务端对象和方法时的大小写问题 3.客户端上的方法不能重名 4.IE7及以下的,需要增加json的分析器,分 ...
- Java 8 New Features
What's New in JDK 8 https://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html Java Pla ...
- python基础--数据结构之字典
字典 特点:无序,键唯一 目录 1.字典的创建 2. .setdefault 的使用 3. 字典中的查找 4.字典中的改 5. 字典中的删除 6. 打印字典的方法 7. 格式化字符串 8. 合并字符 ...
- Matlab解释器模式
解释器模式(Interperter),给定一个语言,定义一个语言的文法,并且建立一个解释器来解释该语言中的句子,实际开发中EL表达式或者正则表达式的解释器就是采用这种设计模式.其模式结构如下图.本文使 ...
- Javascript中创建函数的几种方法
// 工厂函数模式 // 无法解决对象识别问题 function person0(name, age, job) { var obj = new Object(); obj.name = name; ...