C#DbHelperOra,Oracle数据库帮助类 (转载)
主要功能如下
数据访问抽象基础类 主要是访问Oracle数据库主要实现如下功能
- .数据访问基础类(基于Oracle),主要是用来访问Oracle数据库的。
- .得到最大值;是否存在;是否存在(基于OracleParameter );
- .执行SQL语句,返回影响的记录数;
- .执行多条SQL语句,实现数据库事务;
- .执行带一个存储过程参数的的SQL语句;
- .向数据库里插入图像格式的字段(和上面情况类似的另一种实例);
- .执行一条计算查询结果语句,返回查询结果(object);
- .执行查询语句,返回OracleDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close );
- .执行查询语句,返回DataSet;
- .执行SQL语句,返回影响的记录数;
- .执行多条SQL语句,实现数据库事务;
- .执行一条计算查询结果语句,返回查询结果(object);
- .执行查询语句,返回OracleDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close );
- .执行查询语句,返回DataSet;
- .执行存储过程 返回SqlDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close );
- .执行存储过程;构建 OracleCommand 对象(用来返回一个结果集,而不是一个整数值);
- .执行存储过程,返回影响的行数;
- .创建 OracleCommand 对象实例(用来返回一个整数值)
- /// <summary>
- /// 编 码 人:苏飞
- /// 联系方式:361983679
- /// 更新网站:[url=http://www.sufeinet.com/thread-655-1-1.html]http://www.sufeinet.com/thread-655-1-1.html[/url]
- /// </summary>
- using System;
- using System.Collections;
- using System.Collections.Specialized;
- using System.Data;
- using System.Data.OracleClient;
- using System.Configuration;
- namespace Maticsoft.DBUtility
- {
- /// <summary>
- /// 数据访问基础类(基于Oracle)
- /// 可以用户可以修改满足自己项目的需要。
- /// </summary>
- public abstract class DbHelperOra
- {
- //数据库连接字符串(web.config来配置),可以动态更改connectionString支持多数据库.
- public static string connectionString = "连接字符串";
- public DbHelperOra()
- {
- }
- #region 公用方法
- public static int GetMaxID(string FieldName, string TableName)
- {
- string strsql = "select max(" + FieldName + ")+1 from " + TableName;
- object obj = GetSingle(strsql);
- if (obj == null)
- {
- return ;
- }
- else
- {
- return int.Parse(obj.ToString());
- }
- }
- public static bool Exists(string strSql)
- {
- object obj = GetSingle(strSql);
- int cmdresult;
- if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
- {
- cmdresult = ;
- }
- else
- {
- cmdresult = int.Parse(obj.ToString());
- }
- if (cmdresult == )
- {
- return false;
- }
- else
- {
- return true;
- }
- }
- public static bool Exists(string strSql, params OracleParameter[] cmdParms)
- {
- object obj = GetSingle(strSql, cmdParms);
- int cmdresult;
- if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
- {
- cmdresult = ;
- }
- else
- {
- cmdresult = int.Parse(obj.ToString());
- }
- if (cmdresult == )
- {
- return false;
- }
- else
- {
- return true;
- }
- }
- #endregion
- #region 执行简单SQL语句
- /// <summary>
- /// 执行SQL语句,返回影响的记录数
- /// </summary>
- /// <param name="SQLString">SQL语句</param>
- /// <returns>影响的记录数</returns>
- public static int ExecuteSql(string SQLString)
- {
- using (OracleConnection connection = new OracleConnection(connectionString))
- {
- using (OracleCommand cmd = new OracleCommand(SQLString,connection))
- {
- try
- {
- connection.Open();
- int rows=cmd.ExecuteNonQuery();
- return rows;
- }
- catch(System.Data.OracleClient.OracleException E)
- {
- connection.Close();
- throw new Exception(E.Message);
- }
- }
- }
- }
- /// <summary>
- /// 执行多条SQL语句,实现数据库事务。
- /// </summary>
- /// <param name="SQLStringList">多条SQL语句</param>
- public static void ExecuteSqlTran(ArrayList SQLStringList)
- {
- using (OracleConnection conn = new OracleConnection(connectionString))
- {
- conn.Open();
- OracleCommand cmd = new OracleCommand();
- cmd.Connection=conn;
- OracleTransaction tx=conn.BeginTransaction();
- cmd.Transaction=tx;
- try
- {
- for(int n=;n<SQLStringList.Count;n++)
- {
- string strsql=SQLStringList[n].ToString();
- if (strsql.Trim().Length>)
- {
- cmd.CommandText=strsql;
- cmd.ExecuteNonQuery();
- }
- }
- tx.Commit();
- }
- catch(System.Data.OracleClient.OracleException E)
- {
- tx.Rollback();
- throw new Exception(E.Message);
- }
- }
- }
- /// <summary>
- /// 执行带一个存储过程参数的的SQL语句。
- /// </summary>
- /// <param name="SQLString">SQL语句</param>
- /// <param name="content">参数内容,比如一个字段是格式复杂的文章,有特殊符号,可以通过这个方式添加</param>
- /// <returns>影响的记录数</returns>
- public static int ExecuteSql(string SQLString,string content)
- {
- using (OracleConnection connection = new OracleConnection(connectionString))
- {
- OracleCommand cmd = new OracleCommand(SQLString,connection);
- System.Data.OracleClient.OracleParameter myParameter = new System.Data.OracleClient.OracleParameter("@content", OracleType.NVarChar);
- myParameter.Value = content ;
- cmd.Parameters.Add(myParameter);
- try
- {
- connection.Open();
- int rows=cmd.ExecuteNonQuery();
- return rows;
- }
- catch(System.Data.OracleClient.OracleException E)
- {
- throw new Exception(E.Message);
- }
- finally
- {
- cmd.Dispose();
- connection.Close();
- }
- }
- }
- /// <summary>
- /// 向数据库里插入图像格式的字段(和上面情况类似的另一种实例)
- /// </summary>
- /// <param name="strSQL">SQL语句</param>
- /// <param name="fs">图像字节,数据库的字段类型为image的情况</param>
- /// <returns>影响的记录数</returns>
- public static int ExecuteSqlInsertImg(string strSQL,byte[] fs)
- {
- using (OracleConnection connection = new OracleConnection(connectionString))
- {
- OracleCommand cmd = new OracleCommand(strSQL,connection);
- System.Data.OracleClient.OracleParameter myParameter = new System.Data.OracleClient.OracleParameter("@fs", OracleType.LongRaw);
- myParameter.Value = fs ;
- cmd.Parameters.Add(myParameter);
- try
- {
- connection.Open();
- int rows=cmd.ExecuteNonQuery();
- return rows;
- }
- catch(System.Data.OracleClient.OracleException E)
- {
- throw new Exception(E.Message);
- }
- finally
- {
- cmd.Dispose();
- connection.Close();
- }
- }
- }
- /// <summary>
- /// 执行一条计算查询结果语句,返回查询结果(object)。
- /// </summary>
- /// <param name="SQLString">计算查询结果语句</param>
- /// <returns>查询结果(object)</returns>
- public static object GetSingle(string SQLString)
- {
- using (OracleConnection connection = new OracleConnection(connectionString))
- {
- using(OracleCommand cmd = new OracleCommand(SQLString,connection))
- {
- try
- {
- connection.Open();
- object obj = cmd.ExecuteScalar();
- if((Object.Equals(obj,null))||(Object.Equals(obj,System.DBNull.Value)))
- {
- return null;
- }
- else
- {
- return obj;
- }
- }
- catch(System.Data.OracleClient.OracleException e)
- {
- connection.Close();
- throw new Exception(e.Message);
- }
- }
- }
- }
- /// <summary>
- /// 执行查询语句,返回OracleDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close )
- /// </summary>
- /// <param name="strSQL">查询语句</param>
- /// <returns>OracleDataReader</returns>
- public static OracleDataReader ExecuteReader(string strSQL)
- {
- OracleConnection connection = new OracleConnection(connectionString);
- OracleCommand cmd = new OracleCommand(strSQL,connection);
- try
- {
- connection.Open();
- OracleDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
- return myReader;
- }
- catch(System.Data.OracleClient.OracleException e)
- {
- throw new Exception(e.Message);
- }
- }
- /// <summary>
- /// 执行查询语句,返回DataSet
- /// </summary>
- /// <param name="SQLString">查询语句</param>
- /// <returns>DataSet</returns>
- public static DataSet Query(string SQLString)
- {
- using (OracleConnection connection = new OracleConnection(connectionString))
- {
- DataSet ds = new DataSet();
- try
- {
- connection.Open();
- OracleDataAdapter command = new OracleDataAdapter(SQLString,connection);
- command.Fill(ds,"ds");
- }
- catch(System.Data.OracleClient.OracleException ex)
- {
- throw new Exception(ex.Message);
- }
- return ds;
- }
- }
- #endregion
- #region 执行带参数的SQL语句
- /// <summary>
- /// 执行SQL语句,返回影响的记录数
- /// </summary>
- /// <param name="SQLString">SQL语句</param>
- /// <returns>影响的记录数</returns>
- public static int ExecuteSql(string SQLString,params OracleParameter[] cmdParms)
- {
- using (OracleConnection connection = new OracleConnection(connectionString))
- {
- using (OracleCommand cmd = new OracleCommand())
- {
- try
- {
- PrepareCommand(cmd, connection, null,SQLString, cmdParms);
- int rows=cmd.ExecuteNonQuery();
- cmd.Parameters.Clear();
- return rows;
- }
- catch(System.Data.OracleClient.OracleException E)
- {
- throw new Exception(E.Message);
- }
- }
- }
- }
- /// <summary>
- /// 执行多条SQL语句,实现数据库事务。
- /// </summary>
- /// <param name="SQLStringList">SQL语句的哈希表(key为sql语句,value是该语句的OracleParameter[])</param>
- public static void ExecuteSqlTran(Hashtable SQLStringList)
- {
- using (OracleConnection conn = new OracleConnection(connectionString))
- {
- conn.Open();
- using (OracleTransaction trans = conn.BeginTransaction())
- {
- OracleCommand cmd = new OracleCommand();
- try
- {
- //循环
- foreach (DictionaryEntry myDE in SQLStringList)
- {
- string cmdText=myDE.Key.ToString();
- OracleParameter[] cmdParms=(OracleParameter[])myDE.Value;
- PrepareCommand(cmd,conn,trans,cmdText, cmdParms);
- int val = cmd.ExecuteNonQuery();
- cmd.Parameters.Clear();
- trans.Commit();
- }
- }
- catch
- {
- trans.Rollback();
- throw;
- }
- }
- }
- }
- /// <summary>
- /// 执行一条计算查询结果语句,返回查询结果(object)。
- /// </summary>
- /// <param name="SQLString">计算查询结果语句</param>
- /// <returns>查询结果(object)</returns>
- public static object GetSingle(string SQLString,params OracleParameter[] cmdParms)
- {
- using (OracleConnection connection = new OracleConnection(connectionString))
- {
- using (OracleCommand cmd = new OracleCommand())
- {
- try
- {
- PrepareCommand(cmd, connection, null,SQLString, cmdParms);
- object obj = cmd.ExecuteScalar();
- cmd.Parameters.Clear();
- if((Object.Equals(obj,null))||(Object.Equals(obj,System.DBNull.Value)))
- {
- return null;
- }
- else
- {
- return obj;
- }
- }
- catch(System.Data.OracleClient.OracleException e)
- {
- throw new Exception(e.Message);
- }
- }
- }
- }
- /// <summary>
- /// 执行查询语句,返回OracleDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close )
- /// </summary>
- /// <param name="strSQL">查询语句</param>
- /// <returns>OracleDataReader</returns>
- public static OracleDataReader ExecuteReader(string SQLString,params OracleParameter[] cmdParms)
- {
- OracleConnection connection = new OracleConnection(connectionString);
- OracleCommand cmd = new OracleCommand();
- try
- {
- PrepareCommand(cmd, connection, null,SQLString, cmdParms);
- OracleDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
- cmd.Parameters.Clear();
- return myReader;
- }
- catch(System.Data.OracleClient.OracleException e)
- {
- throw new Exception(e.Message);
- }
- }
- /// <summary>
- /// 执行查询语句,返回DataSet
- /// </summary>
- /// <param name="SQLString">查询语句</param>
- /// <returns>DataSet</returns>
- public static DataSet Query(string SQLString,params OracleParameter[] cmdParms)
- {
- using (OracleConnection connection = new OracleConnection(connectionString))
- {
- OracleCommand cmd = new OracleCommand();
- PrepareCommand(cmd, connection, null,SQLString, cmdParms);
- using( OracleDataAdapter da = new OracleDataAdapter(cmd) )
- {
- DataSet ds = new DataSet();
- try
- {
- da.Fill(ds,"ds");
- cmd.Parameters.Clear();
- }
- catch(System.Data.OracleClient.OracleException ex)
- {
- throw new Exception(ex.Message);
- }
- return ds;
- }
- }
- }
- private static void PrepareCommand(OracleCommand cmd,OracleConnection conn,OracleTransaction trans, string cmdText, OracleParameter[] cmdParms)
- {
- if (conn.State != ConnectionState.Open)
- conn.Open();
- cmd.Connection = conn;
- cmd.CommandText = cmdText;
- if (trans != null)
- cmd.Transaction = trans;
- cmd.CommandType = CommandType.Text;//cmdType;
- if (cmdParms != null)
- {
- foreach (OracleParameter parm in cmdParms)
- cmd.Parameters.Add(parm);
- }
- }
- #endregion
- #region 存储过程操作
- /// <summary>
- /// 执行存储过程 返回SqlDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close )
- /// </summary>
- /// <param name="storedProcName">存储过程名</param>
- /// <param name="parameters">存储过程参数</param>
- /// <returns>OracleDataReader</returns>
- public static OracleDataReader RunProcedure(string storedProcName, IDataParameter[] parameters )
- {
- OracleConnection connection = new OracleConnection(connectionString);
- OracleDataReader returnReader;
- connection.Open();
- OracleCommand command = BuildQueryCommand( connection,storedProcName, parameters );
- command.CommandType = CommandType.StoredProcedure;
- returnReader = command.ExecuteReader(CommandBehavior.CloseConnection);
- return returnReader;
- }
- /// <summary>
- /// 执行存储过程
- /// </summary>
- /// <param name="storedProcName">存储过程名</param>
- /// <param name="parameters">存储过程参数</param>
- /// <param name="tableName">DataSet结果中的表名</param>
- /// <returns>DataSet</returns>
- public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName )
- {
- using (OracleConnection connection = new OracleConnection(connectionString))
- {
- DataSet dataSet = new DataSet();
- connection.Open();
- OracleDataAdapter sqlDA = new OracleDataAdapter();
- sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters );
- sqlDA.Fill( dataSet, tableName );
- connection.Close();
- return dataSet;
- }
- }
- /// <summary>
- /// 构建 OracleCommand 对象(用来返回一个结果集,而不是一个整数值)
- /// </summary>
- /// <param name="connection">数据库连接</param>
- /// <param name="storedProcName">存储过程名</param>
- /// <param name="parameters">存储过程参数</param>
- /// <returns>OracleCommand</returns>
- private static OracleCommand BuildQueryCommand(OracleConnection connection,string storedProcName, IDataParameter[] parameters)
- {
- OracleCommand command = new OracleCommand( storedProcName, connection );
- command.CommandType = CommandType.StoredProcedure;
- foreach (OracleParameter parameter in parameters)
- {
- command.Parameters.Add( parameter );
- }
- return command;
- }
- /// <summary>
- /// 执行存储过程,返回影响的行数
- /// </summary>
- /// <param name="storedProcName">存储过程名</param>
- /// <param name="parameters">存储过程参数</param>
- /// <param name="rowsAffected">影响的行数</param>
- /// <returns></returns>
- public static int RunProcedure(string storedProcName, IDataParameter[] parameters, out int rowsAffected )
- {
- using (OracleConnection connection = new OracleConnection(connectionString))
- {
- int result;
- connection.Open();
- OracleCommand command = BuildIntCommand(connection,storedProcName, parameters );
- rowsAffected = command.ExecuteNonQuery();
- result = (int)command.Parameters["ReturnValue"].Value;
- //Connection.Close();
- return result;
- }
- }
- /// <summary>
- /// 创建 OracleCommand 对象实例(用来返回一个整数值)
- /// </summary>
- /// <param name="storedProcName">存储过程名</param>
- /// <param name="parameters">存储过程参数</param>
- /// <returns>OracleCommand 对象实例</returns>
- private static OracleCommand BuildIntCommand(OracleConnection connection,string storedProcName, IDataParameter[] parameters)
- {
- OracleCommand command = BuildQueryCommand(connection,storedProcName, parameters );
- command.Parameters.Add( new OracleParameter ( "ReturnValue",
- OracleType.Int32, , ParameterDirection.ReturnValue,
- false,,,string.Empty,DataRowVersion.Default,null ));
- return command;
- }
- #endregion
- }
- }
C#DbHelperOra,Oracle数据库帮助类 (转载)的更多相关文章
- C# Oracle数据库操作类实例详解
本文所述为C#实现的Oracle数据库操作类,可执行超多常用的Oracle数据库操作,包含了基础数据库连接.关闭连接.输出记录集.执行Sql语句,返回带分页功能的dataset .取表里字段的类型和长 ...
- (转)C# Oracle数据库操作类
原文地址:http://www.cnblogs.com/haibing0107/p/6143922.html using System;using System.Data;using System.C ...
- 连接Oracle数据库帮助类
连接Oracle数据库帮助类,就是把连接Oracle数据库的方法封装起来,只需要在其它页面调用就可,不需要重复写. import java.sql.Connection; import java.sq ...
- C# Oracle数据库操作类
using System; using System.Data; using System.Collections.Generic; using System.Configuration; using ...
- Oracle数据库操作类及连接方法
创建DataBaseAccess引用库下面包括DBConnectionString.cs,DBType.cs ,SysName.cs 三个类 DBConnectionString: using Sys ...
- oracle 数据库优化【转载】
版权声明:本文为CSDN博主「咫尺的梦想ing」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/u01305 ...
- oracle数据库date类型和mysql数据库datetime类型匹配
oracle数据库有date类型,但是没有datetime类型 mysql数据库既有date类型也有datetime类型. Oracle数据库的date类型和mysql的date类型是不一样的,Ora ...
- .NET/C#/Oracle数据库操作类
public static class OracleHelper { //数据库连接字符串 private readonly static string connstr = Configuration ...
- oracle 数据库 date + 1 转载
http://blog.csdn.net/yjp198713/article/details/18131871 oracle 求两个时间点直接的分钟.小时数 1.获得时间差毫秒数: select ce ...
随机推荐
- Chrome浏览器插件VisualEvent,可以方便的查看页面绑定的事件
http://files.cnblogs.com/files/jiqing9006/VisualEvent.zip
- ASP.Net4.0中新增23项功能
这篇文章介绍Visual Studio 2010 (ASP.Net 4.0)的新功能. 1.代码片段(Code Snippets): 代码段是预先开发的代码模板,可以节省我们对有关语法思考的时间.在V ...
- C#的装箱和拆箱
1:装箱 其实就是将一个值类型的转换成一个引用类型,或者把值类型转换成一个被该值类型那个应用的接口类型,这个过程会使用堆栈.被装箱的值是作为一个复制赋给对象的. int intValue = 100 ...
- Vijos_1792_摆花_(动态规划,多重集组合数)
描述 https://vijos.org/p/1792 共n种花,第i种花有a[i]个,要摆m个,同一种花连续且花按照序号从小到大排,问共有多少种摆花方案. 描述 小明的花店新开张,为了吸引顾客, ...
- 关于Azure Auto Scale的高级属性配置
Auto Sacle是一种自动化管理云服务负载的功能,系统可以根据预先制定的规则,在满足条件的情况下对计算实例的数量进行增减从而可以用来优化使用Azure的计算资源,可以适用于Cloud Servic ...
- 【转】Android中设置TextView的颜色setTextColor--代码中设置字体颜色
原文网址:http://www.cnblogs.com/myphoebe/archive/2012/01/06/2314728.html android中设置TextView的颜色有方法setText ...
- Android Loader详解三:重启与回调
重启装载器 当你使用initLoader()时,如果指定ID的装载器已经存在,则它使用这个装载器.如果不存在呢,它将创建一个新的.但是有时你却是想丢弃旧的然后开始新的数据. 要想丢弃旧数据,你应使用r ...
- Linux下Chrome浏览器的BUG
“我胡汉三又回来了”,好久没出现在博客园了,准备考试什么的最烦躁了,今天又重新整了下我的Ubuntu,结果发现了一个Chrome浏览器的Bug,但是与其说它是个Bug,还不如说它是个Joke. 好吧, ...
- 笔记本CPU的型号和类型的区分方法
笔记本CPU的型号和类型的区分方法: 1.所有笔记本CPU型号后面默认为M,代表移动版. 2.如果M变为H,则代表高性能版本,时钟频率更高,性能强,但功耗更大一点,如I7 4500H. 3.如果M变为 ...
- 排序算法_HeapSort
大根堆排序的基本思想: 1) 先将初始文件R[1..n]建成一个大根堆,此堆为初始的无序区; 2) 再将关键字最大的记录R[1](即堆顶)和无序区的最后一个记录R[n]交换, 由此得到新的无序区 ...