SQLHelperヘルプクラス_下(複数データベースのパッケージに対応)
24917 ワード
上記のSQLHelperクラスでは、主にSQLServerデータベースに対して行われています.別のデータベースを使用しています.コードの一部を変更します.だから今日は複数のデータベースをサポートするパッケージを書きます.主に列挙に使用して、configファイルを読みます!インタフェースの簡単な使い方.接続の取得など…
一.configプロファイル:
二.Sql Helper:
一.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