zoukankan      html  css  js  c++  java
  • 分享一个oraclehelper

    分享一个拿即用的oraclehelper

    首先要引用本机中的oralce access,如果是64位的话,也必须是64位运行,不然会报连接为空connection 等于null.

    using Oracle.DataAccess;
    using Oracle.DataAccess.Client;
    

      

    public class OraHelper
        {
    
            public static string connectionString;
            private static OracleConnection conn;
    
            static OraHelper()
            {
                connectionString = System.Configuration.ConfigurationSettings.AppSettings["ConnetionString"].ToString();//读取app.cofig中的数据库配置
                
                conn = new OracleConnection(connectionString);
            }
    
            /// <summary>
            /// 获取默认的连接
            /// </summary>
            /// <returns></returns>
            public static OracleConnection GetConnection()
            {
                return conn;
            }
    
            /// <summary>
            /// 创建新的连接(用于事务操作)
            /// </summary>
            /// <returns></returns>
            public static OracleConnection CreateConnection()
            {
                return new OracleConnection(connectionString);
            }
    
            public static bool ConnectionTest()
            {
                bool ret = false;
                try
                {
                    conn.Open();
                    ret = true;
                }
                catch { ret = false; }
                finally { conn.Close(); }
                return ret;
            }
    
            public static int ExecuteNonQuery(CommandType cmdType, string cmdText, params OracleParameter[] commandParameters)
            {
                int val = 0;
                OracleCommand cmd = new OracleCommand();
                PrepareCommand(cmd, null, cmdType, cmdText, commandParameters);
                try
                {
                    val = cmd.ExecuteNonQuery();
                }
                catch { val = -1; }
                finally
                {
                    cmd.Parameters.Clear();
                    conn.Close();
                }
                return val;
            }
    
            public static int ExecuteNonQuery(string cmdText)
            {
                return ExecuteNonQuery(CommandType.Text, cmdText);
            }
    
            public static int ExecuteNonQuery(string cmdText, params OracleParameter[] commandParameters)
            {
                return ExecuteNonQuery(CommandType.Text, cmdText, commandParameters);
            }
    
            /// <summary>
            /// 以事务的方式执行(多用于多条SQL语句执行)
            /// </summary>
            public static int ExecuteNonQueryByTransaction(string cmdText, params OracleParameter[] commandParameters)
            {
                int val = 0;
                OracleCommand cmd = new OracleCommand();
                OracleTransaction trans = conn.BeginTransaction();
                PrepareCommand(cmd, trans, CommandType.Text, cmdText, commandParameters);
                try
                {
                    val = cmd.ExecuteNonQuery();
                    trans.Commit();
                }
                catch
                {
                    val = -1;
                    trans.Rollback();
                }
                finally
                {
                    cmd.Parameters.Clear();
                    conn.Close();
                }
                return val;
            }
    
            public static int ExecuteNonQuery(OracleTransaction trans, CommandType cmdType, string cmdText, params OracleParameter[] commandParameters)
            {
                int val = 0;
                OracleCommand cmd = new OracleCommand();
                PrepareCommand(cmd, trans, cmdType, cmdText, commandParameters);
                try
                {
                    val = cmd.ExecuteNonQuery();
                }
                catch
                {
                    val = -1;
                }
                finally
                {
                    cmd.Parameters.Clear();
                }
                return val;
            }
    
            public static OracleDataReader ExecuteReader(CommandType cmdType, string cmdText, params OracleParameter[] commandParameters)
            {
                OracleDataReader rdr;
                OracleCommand cmd = new OracleCommand();
                try
                {
                    PrepareCommand(cmd, null, cmdType, cmdText, commandParameters);
                    rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    cmd.Parameters.Clear();
                }
                catch { rdr = null; }
                finally
                {
                    cmd.Parameters.Clear();
                    conn.Close();
                }
                return rdr;
            }
    
            public static DataTable ExecuteDataTable(string cmdText)
            {
                DataTable dt = new DataTable();
                OracleCommand cmd = new OracleCommand();
                PrepareCommand(cmd, null, CommandType.Text, cmdText);
                try
                {
                    OracleDataAdapter adapter = new OracleDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    adapter.Fill(ds);
                    if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                        dt = ds.Tables[0];
                    else
                        dt = null;
                }
                catch { dt = null; }
                finally { conn.Close(); }
                return dt;
            }
    
            public static DataTable ExecuteDataTable(string cmdText, params OracleParameter[] commandParameters)
            {
                DataTable dt = new DataTable();
                OracleCommand cmd = new OracleCommand();
                PrepareCommand(cmd, null, CommandType.Text, cmdText, commandParameters);
                try
                {
                    OracleDataAdapter adapter = new OracleDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    adapter.Fill(ds);
                    if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                        dt = ds.Tables[0];
                    else
                        dt = null;
                }
                catch { dt = null; }
                finally { conn.Close(); }
                return dt;
            }
    
            public static DataTable ExecuteDataTable(CommandType cmdType, string cmdText, params OracleParameter[] commandParameters)
            {
                DataTable dt = new DataTable();
                OracleCommand cmd = new OracleCommand();
                PrepareCommand(cmd, null, cmdType, cmdText, commandParameters);
                try
                {
                    OracleDataAdapter adapter = new OracleDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    adapter.Fill(ds);
                    if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                        dt = ds.Tables[0];
                    else
                        dt = null;
                }
                catch { dt = null; }
                finally { conn.Close(); }
                return dt;
            }
    
            public static DataSet ExecuteDataSet(string cmdText)
            {
                DataSet ds = new DataSet();
                OracleCommand cmd = new OracleCommand();
                PrepareCommand(cmd, null, CommandType.Text, cmdText);
                try
                {
                    OracleDataAdapter adapter = new OracleDataAdapter(cmd);
                    adapter.Fill(ds);
                }
                catch { ds = null; }
                finally { conn.Close(); }
                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) return null;
                else return ds;
            }
    
            public static DataSet ExecuteDataSet(string cmdText, params OracleParameter[] commandParameters)
            {
                DataSet ds = new DataSet();
                OracleCommand cmd = new OracleCommand();
                PrepareCommand(cmd, null, CommandType.Text, cmdText, commandParameters);
                try
                {
                    OracleDataAdapter adapter = new OracleDataAdapter(cmd);
                    adapter.Fill(ds);
                }
                catch { ds = null; }
                finally { conn.Close(); }
                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) return null;
                else return ds;
            }
    
            public static DataSet ExecuteDataSet(CommandType cmdType, string cmdText, params OracleParameter[] commandParameters)
            {
                DataSet ds = new DataSet();
                OracleCommand cmd = new OracleCommand();
                PrepareCommand(cmd, null, cmdType, cmdText, commandParameters);
                try
                {
                    OracleDataAdapter adapter = new OracleDataAdapter(cmd);
                    adapter.Fill(ds);
                }
                catch { ds = null; }
                finally { conn.Close(); }
                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) return null;
                else return ds;
            }
    
            public static object ExecuteScalar(string cmdText)
            {
                return ExecuteScalar(CommandType.Text, cmdText);
            }
    
            public static object ExecuteScalar(string cmdText, params OracleParameter[] commandParameters)
            {
                return ExecuteScalar(CommandType.Text, cmdText, commandParameters);
            }
    
            public static object ExecuteScalar(CommandType cmdType, string cmdText, params OracleParameter[] commandParameters)
            {
                object val = null;
                OracleCommand cmd = new OracleCommand();
                PrepareCommand(cmd, null, cmdType, cmdText, commandParameters);
                try
                {
                    val = cmd.ExecuteScalar();
                }
                catch { val = null; }
                finally
                {
                    cmd.Parameters.Clear();
                    conn.Close();
                }
                return val;
            }
    
            private static void PrepareCommand(OracleCommand cmd, OracleTransaction trans, CommandType cmdType, string cmdText, params OracleParameter[] cmdParms)
            {
                if (trans != null)
                {
                    if (trans.Connection.State != ConnectionState.Open)
                        trans.Connection.Open();
                    cmd.Connection = trans.Connection;
                }
                else
                {
                    if (conn.State != ConnectionState.Open)
                        conn.Open();
                    cmd.Connection = conn;
                }
                cmd.CommandText = cmdText;
                cmd.CommandType = cmdType;
                if (cmdParms != null)
                {
                    foreach (OracleParameter parm in cmdParms)
                        cmd.Parameters.Add(parm);
                }
            }
        }

      在app.config中添加oracle 的连接,代码如下:

    <configuration>
        <startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
        </startup>
      <appSettings>
        <add key="ConnetionString" value="data source=192.168.0.2/orcl;user id=TEST;password=123456;persist security info=False;Pooling=False"/>
      </appSettings>
    </configuration>
  • 相关阅读:
    如何在vim中同时编辑多个文件
    Windows操作系统架构
    驱动中PAGED_CODE的作用
    Process Hacker源码中的用户态hook的做法
    IO Processing
    Device Drivers
    Windows IO System
    how to catch error in make error message
    分析/proc/[pid]/maps中的各个内存区域的大小
    boost::shared_ptr
  • 原文地址:https://www.cnblogs.com/yuhuabaobao/p/6247478.html
Copyright © 2011-2022 走看看