c#連接oracle數據庫 DBHelper


閑着沒事自己寫了一個OracleHelper類,希望大神給點建議優化

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Web;
  5 using System.Data;
  6 using System.Data.OracleClient;
  7 
  8 namespace Common
  9 {
 10     public class DBHelper
 11     {
 12         private string connectionstring { get; set; } = System.Configuration.ConfigurationManager.ConnectionStrings["cms_mh"].ConnectionString;
 13 
 14         public DBHelper()
 15         {
 16             OpenConnection();
 17         }
 18 
 19         /// <summary>
 20         /// 根據配置節讀取連接數據庫
 21         /// </summary>
 22         /// <param name="key">需要連接的數據庫</param>
 23         public DBHelper(string key)
 24         {
 25             this.connectionstring = System.Configuration.ConfigurationManager.ConnectionStrings[key].ConnectionString;
 26             OpenConnection();
 27         }
 28         
 29         /// <summary>
 30         /// 定義Oracle連接
 31         /// </summary>
 32         private OracleConnection conn { get; set; }
 33 
 34         private OracleCommand cmd;
 35         /// <summary>
 36         /// 打開連接
 37         /// </summary>
 38         public void OpenConnection()
 39         {
 40             if (conn == null)
 41                 conn = new OracleConnection(connectionstring);
 42             if (conn.State == ConnectionState.Closed)
 43                 conn.Open();
 44         }
 45 
 46         /// <summary>
 47         /// 構建返回Command
 48         /// </summary>
 49         /// <param name="cmdText">CommandText</param>
 50         /// <param name="cmd">需要返回的Command</param>
 51         /// <param name="cmdType">執行類型</param>
 52         /// <param name="param">參數列表</param>
 53         public void BuilderCommand(string cmdText, out OracleCommand cmd, CommandType cmdType, params OracleParameter[] param)
 54         {
 55             cmd = new OracleCommand();
 56             cmd.Connection = conn;
 57             cmd = conn.CreateCommand();
 58             cmd.CommandType = cmdType;
 59             cmd.CommandText = cmdText;
 60             foreach (var item in param)
 61             {
 62                 cmd.Parameters.Add(item);
 63             }
 64         }
 65 
 66         /// <summary>
 67         /// 執行存儲過程
 68         /// </summary>
 69         /// <param name="storedName">存儲過程名稱</param>
 70         /// <param name="param">參數列表</param>
 71         /// <returns>返回執行成功條數</returns>
 72         public int ExecuteStored(string storedName, params OracleParameter[] param)
 73         {
 74             BuilderCommand(storedName, out cmd, CommandType.StoredProcedure, param);
 75             return cmd.ExecuteNonQuery();
 76         }
 77 
 78         /// <summary>
 79         /// 獲取DataSet
 80         /// </summary>
 81         /// <param name="cmdText">執行語句</param>
 82         /// <returns>DataSet</returns>
 83         public DataSet GetDateSet(string cmdText, params OracleParameter[] param)
 84         {
 85             using (OracleDataAdapter _da = new OracleDataAdapter(cmdText, conn))
 86             {
 87                 DataSet ds = new DataSet();
 88                 _da.Fill(ds);
 89                 return ds;
 90             }
 91         }
 92 
 93         /// <summary>
 94         /// 獲取Table
 95         /// </summary>
 96         /// <param name="cmdText">執行語句</param>
 97         /// <returns>DataTable</returns>
 98         public DataTable GetTable(string cmdText)
 99         {
100             return GetDateSet(cmdText).Tables[0];
101         }
102 
103         /// <summary>
104         /// 執行sql
105         /// </summary>
106         /// <param name="cmdText">執行語句</param>
107         /// <param name="param">執行所需參數</param>
108         /// <returns>成功執行數</returns>
109         public int ExecuteSql(string cmdText, params OracleParameter[] param)
110         {
111             OracleCommand cmd = new OracleCommand();
112             BuilderCommand(cmdText, out cmd, CommandType.Text, param);
113             return cmd.ExecuteNonQuery();
114         }
115 
116         /// <summary>
117         /// 構建DataReader
118         /// </summary>
119         /// <param name="cmdText">執行語句</param>
120         /// <param name="param">執行所需參數</param>
121         /// <returns>DataReader</returns>
122         public OracleDataReader BuilderDataReader(string cmdText, params OracleParameter[] param)
123         {
124             BuilderCommand(cmdText, out cmd, CommandType.Text, param);
125             return cmd.ExecuteReader();
126         }
127     }
128 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM