SQLHelperヘルプクラス_下(複数データベースのパッケージに対応)

24917 ワード

上記のSQLHelperクラスでは、主にSQLServerデータベースに対して行われています.別のデータベースを使用しています.コードの一部を変更します.だから今日は複数のデータベースをサポートするパッケージを書きます.主に列挙に使用して、configファイルを読みます!インタフェースの簡単な使い方.接続の取得など…
 
一.configプロファイル:
  <connectionStrings>
    <add name="constr" connectionString="server=127.0.0.1;user id=   ;password=  ;database=    "/>
  connectionStrings>
  <appSettings>
    <add key="database" value ="MYSQL"/>
  appSettings>
接続文字列についてはSQLHelperヘルプクラス_上に移動 紹介します http://www.cnblogs.com/fengxuehuanlin/p/5271944.html
二.Sql Helper: 1 private static string connstr; 2 /// 3 /// , 4 /// key :database,value : 5 /// name:constr 6 /// 7 static SqlHelper() 8 { 9 connstr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString; // config 10 string databaseType = ConfigurationManager.AppSettings["database"].ToUpper(); 11 DBdatabase.database = AdoHelper.EnumParse(databaseType); // 12 } 13 14 /// 15 /// 16 /// 17 /// 18 public static IDbConnection getConnection() 19 { 20 string value = DBdatabase.database.ToString(); 21 DatabaseList database= AdoHelper.EnumParse(value); 22 switch(database) 23 { 24 case DatabaseList.MYSQL: 25 return new MySqlConnection(connstr); 26 case DatabaseList.SQLSERVER: 27 return new SqlConnection(connstr); 28 default: 29 throw new Exception(""); 30 } 31 } 32 33 /// 34 /// 35 /// 36 /// Sql 37 /// 38 /// DataTable 39 public static DataTable ExecuteQuery(string Sql, params IDbDataParameter[] parameter) 40 { 41 using (IDbConnection conn=getConnection()) 42 using (IDbCommand cmd = conn.CreateCommand()) 43 { 44 conn.Open(); 45 cmd.CommandText = Sql; 46 for (int i = 0; i < parameter.Length; i++) 47 { 48 cmd.Parameters.Add(parameter[i]); 49 } 50 DataTable tab = new DataTable(); 51 using (IDataReader reader = cmd.ExecuteReader()) 52 { 53 tab.Load(reader); 54 return tab; 55 } 56 } 57 } 58 /// 59 /// 60 /// 61 /// Sql 62 /// 63 /// 64 public static int ExecuteNonQuery(string Sql, params IDbDataParameter[] parameter) 65 { 66 using (IDbConnection conn = getConnection()) 67 using (IDbCommand cmd = conn.CreateCommand()) 68 { 69 conn.Open(); 70 cmd.CommandText = Sql; 71 for (int i = 0; i < parameter.Length; i++) 72 { 73 cmd.Parameters.Add(parameter[i]); 74 } 75 return cmd.ExecuteNonQuery(); 76 } 77 } 78 /// 79 /// 80 /// 81 /// 82 /// 83 /// object 84 public static object ExecuteScalar(string Sql, params IDbDataParameter[] parameter) 85 { 86 using (IDbConnection conn=getConnection()) 87 using (IDbCommand cmd = conn.CreateCommand()) 88 { 89 conn.Open(); 90 cmd.CommandText = Sql; 91 for (int i = 0; i < parameter.Length; i++) 92 { 93 cmd.Parameters.Add(parameter[i]); 94 } 95 return cmd.ExecuteScalar(); 96 } 97 } 98 /// 99 ///100 /// 101 /// 102 /// 103 /// 104 public static IDataReader ExecuteReader(string Sql, params IDbDataParameter[] parameter) 105 { 106 using (IDbConnection conn = getConnection()) 107 using (IDbCommand cmd = conn.CreateCommand()) 108 { 109 conn.Open(); 110 cmd.CommandText = Sql; 111 for (int i = 0; i < parameter.Length; i++) 112 { 113 cmd.Parameters.Add(parameter[i]); 114 } 115 return cmd.ExecuteReader(CommandBehavior.CloseConnection); 116 } 117 } 118 } 119 /// 120 /// 121 /// 122 public class DBdatabase 123 { 124 public static DatabaseList database { get; set; } 125 } 126 public class AdoHelper 127 { 128 /// 129 /// 130 /// 131 /// 132 /// 133 /// 134 public static T EnumParse(string value) 135 { 136 return (T)Enum.Parse(typeof(T), value); 137 } 138 139 /// 140 /// 141 /// 142 /// 143 /// 144 public static IDbCommand CreateCommand(IDbConnection conn) 145 { 146 IDbCommand cmd = conn.CreateCommand(); 147 conn.Open(); 148 return cmd; 149 } 150 } 151 /// 152 /// 153 /// 154 public enum DatabaseList 155 { 156 MYSQL = 0, 157 SQLSERVER = 1 158 }

 

:https://www.cnblogs.com/fengxuehuanlin/p/5354670.html

244545454579142 244545454579142 142 244545454579142 142 142