| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319 |
- using System;
- using System.Configuration;
- using System.Data;
- using System.Data.OracleClient;
- namespace CallCenterApi.DB {
- public class DBOracleHelper
- {
- public static OracleCommand cmd = null;
- public static OracleConnection conn = null;
- public static string connstr = ConfigurationManager.ConnectionStrings["oracleconn"].ConnectionString;
- public DBOracleHelper()
- { }
- #region 建立数据库连接对象
- /// <summary>
- /// 建立数据库连接
- /// </summary>
- /// <returns>返回一个数据库的连接OracleConnection对象</returns>
- public static OracleConnection init()
- {
- try
- {
- conn = new OracleConnection(connstr);
- if (conn.State != ConnectionState.Open)
- {
- conn.Open();
- }
- }
- catch (Exception e)
- {
- throw new Exception(e.Message.ToString());
- }
- return conn;
- }
- #endregion
- #region 设置OracleCommand对象
- /// <summary>
- /// 设置OracleCommand对象
- /// </summary>
- /// <param name="cmd">OracleCommand对象 </param>
- /// <param name="cmdText">命令文本</param>
- /// <param name="cmdType">命令类型</param>
- /// <param name="cmdParms">参数集合</param>
- private static void SetCommand(OracleCommand cmd, string cmdText, CommandType cmdType, OracleParameter[] cmdParms)
- {
- cmd.Connection = conn;
- cmd.CommandText = cmdText;
- cmd.CommandType = cmdType;
- if (cmdParms != null)
- {
- cmd.Parameters.AddRange(cmdParms);
- }
- }
- #endregion
- #region 执行相应的sql语句,返回相应的DataSet对象
- /// <summary>
- /// 执行相应的sql语句,返回相应的DataSet对象
- /// </summary>
- /// <param name="sqlstr">sql语句</param>
- /// <returns>返回相应的DataSet对象</returns>
- public static DataSet GetDataSet(string sqlstr, OracleParameter[] cmdParms=null)
- {
- DataSet set = new DataSet();
- try
- {
- OracleCommand cmd = new OracleCommand();
- PrepareCommand(cmd, init(), null, sqlstr, cmdParms);
- OracleDataAdapter adp = new OracleDataAdapter(cmd);
- adp.Fill(set);
- conn.Close();
- }
- catch (Exception e)
- {
- throw new Exception(e.Message.ToString());
- }
- return set;
- }
- /// <summary>
- /// 执行查询语句,返回DataSet
- /// </summary>
- /// <param name="SQLString">查询语句</param>
- /// <returns>DataSet</returns>
- public static DataSet Query(string SQLString, params OracleParameter[] cmdParms)
- {
- using (OracleConnection connection = new OracleConnection(connstr))
- {
- 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.SqlClient.SqlException 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 parameter in cmdParms)
- {
- if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
- (parameter.Value == null))
- {
- parameter.Value = DBNull.Value;
- }
- cmd.Parameters.Add(parameter);
- }
- }
- }
- #endregion
- #region 执行相应的sql语句,返回相应的DataSet对象
- /// <summary>
- /// 执行相应的sql语句,返回相应的DataSet对象
- /// </summary>
- /// <param name="sqlstr">sql语句</param>
- /// <param name="tableName">表名</param>
- /// <returns>返回相应的DataSet对象</returns>
- public static DataSet GetDataSet(string sqlstr, string tableName)
- {
- DataSet set = new DataSet();
- try
- {
- init();
- OracleDataAdapter adp = new OracleDataAdapter(sqlstr, conn);
- adp.Fill(set, tableName);
- conn.Close();
- }
- catch (Exception e)
- {
- throw new Exception(e.Message.ToString());
- }
- return set;
- }
- #endregion
- #region 执行不带参数sql语句,返回所影响的行数
- /// <summary>
- /// 执行不带参数sql语句,返回所影响的行数
- /// </summary>
- /// <param name="cmdstr">增,删,改sql语句</param>
- /// <returns>返回所影响的行数</returns>
- public static int ExecuteNonQuery(string cmdText)
- {
- int count;
- try
- {
- init();
- cmd = new OracleCommand(cmdText, conn);
- count = cmd.ExecuteNonQuery();
- conn.Close();
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message.ToString());
- }
- return count;
- }
- #endregion
- #region 执行带参数sql语句或存储过程,返回所影响的行数
- /// <summary>
- /// 执行带参数sql语句或存储过程,返回所影响的行数
- /// </summary>
- /// <param name="cmdText">带参数的sql语句和存储过程名</param>
- /// <param name="cmdType">命令类型</param>
- /// <param name="cmdParms">参数集合</param>
- /// <returns>返回所影响的行数</returns>
- public static int ExecuteNonQuery(string cmdText, CommandType cmdType, OracleParameter[] cmdParms)
- {
- int count;
- try
- {
- init();
- cmd = new OracleCommand();
- SetCommand(cmd, cmdText, cmdType, cmdParms);
- count = cmd.ExecuteNonQuery();
- cmd.Parameters.Clear();
- conn.Close();
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message.ToString());
- }
- return count;
- }
- #endregion
- #region 执行不带参数sql语句,返回一个从数据源读取数据的OracleDataReader对象
- /// <summary>
- /// 执行不带参数sql语句,返回一个从数据源读取数据的OracleDataReader对象
- /// </summary>
- /// <param name="cmdstr">相应的sql语句</param>
- /// <returns>返回一个从数据源读取数据的OracleDataReader对象</returns>
- public static OracleDataReader ExecuteReader(string cmdText)
- {
- OracleDataReader reader;
- try
- {
- init();
- cmd = new OracleCommand(cmdText, conn);
- reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message.ToString());
- }
- return reader;
- }
- #endregion
- #region 执行带参数的sql语句或存储过程,返回一个从数据源读取数据的OracleDataReader对象
- /// <summary>
- /// 执行带参数的sql语句或存储过程,返回一个从数据源读取数据的OracleDataReader对象
- /// </summary>
- /// <param name="cmdText">sql语句或存储过程名</param>
- /// <param name="cmdType">命令类型</param>
- /// <param name="cmdParms">参数集合</param>
- /// <returns>返回一个从数据源读取数据的OracleDataReader对象</returns>
- public static OracleDataReader ExecuteReader(string cmdText, CommandType cmdType, OracleParameter[] cmdParms)
- {
- OracleDataReader reader;
- try
- {
- init();
- cmd = new OracleCommand();
- SetCommand(cmd, cmdText, cmdType, cmdParms);
- reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message.ToString());
- }
- return reader;
- }
- #endregion
- #region 执行不带参数sql语句,返回结果集首行首列的值object
- /// <summary>
- /// 执行不带参数sql语句,返回结果集首行首列的值object
- /// </summary>
- /// <param name="cmdstr">相应的sql语句</param>
- /// <returns>返回结果集首行首列的值object</returns>
- public static object GetSingle(string cmdText)
- {
- object obj;
- try
- {
- init();
- cmd = new OracleCommand(cmdText, conn);
- obj = cmd.ExecuteScalar();
- conn.Close();
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message.ToString());
- }
- return obj;
- }
- #endregion
- #region 执行带参数sql语句或存储过程,返回结果集首行首列的值object
- /// <summary>
- /// 执行带参数sql语句或存储过程,返回结果集首行首列的值object
- /// </summary>
- /// <param name="cmdText">sql语句或存储过程名</param>
- /// <param name="cmdType">命令类型</param>
- /// <param name="cmdParms">返回结果集首行首列的值object</param>
- /// <returns></returns>
- public static object ExecuteScalar(string cmdText, CommandType cmdType, OracleParameter[] cmdParms)
- {
- object obj;
- try
- {
- init();
- cmd = new OracleCommand();
- SetCommand(cmd, cmdText, cmdType, cmdParms);
- obj = cmd.ExecuteScalar();
- conn.Close();
- }
- catch (Exception ex)
- {
- throw new Exception(ex.Message.ToString());
- }
- return obj;
- }
- #endregion
- }
- }
|