實現(xiàn)多數(shù)據(jù)庫的訪問
如果為了實現(xiàn)數(shù)據(jù)庫操作類DbHelperSQL能同一項目支持多個數(shù)據(jù)庫訪問的情況,則可以保留原來帶有的連接字符串參數(shù)的方法,實現(xiàn)方法的重載。例如:
- public static int ExecuteSql(string SQLString)
- {
- }
- public static int ExecuteSql(string conString, string SQLString)
- {
- }
- public static int ExecuteSql(string SQLString, params SqlParameter[]
cmdParms)- {
- }
- public static int ExecuteSql(string conString, string SQLString,
- params SqlParameter[] cmdParms)
- {
- }
如果只有一個數(shù)據(jù)庫,則直接使用默認(rèn)的無連接字符串參數(shù)的方法會比較簡潔,當(dāng)需要改變數(shù)據(jù)庫時,只需要把不同的數(shù)據(jù)庫連接字符串傳進(jìn)去就可以了。
當(dāng)然,我們可以把string conString抽象出去,作為公共屬性,在構(gòu)造函數(shù)中被動態(tài)地傳遞進(jìn)來,也可以支持不同數(shù)據(jù)的訪問。例如:
- //<summary>
- //數(shù)據(jù)訪問類,可用于訪問不同數(shù)據(jù)庫
- //</summary>
- public class DbHelperSQLP
- {
- public string connectionString = PubConstant.ConnectionString;
- public DbHelperSQLP(string ConnectionString)
- {
- connectionString = ConnectionString;
- }
- public int ExecuteSql(string StrSql)
- {
- using (SqlConnection connection = new SqlConnection(conString))
- {
- using (SqlCommand cmd = new SqlCommand(StrSql, connection))
- {
- connection.Open();
- int rows = cmd.ExecuteNonQuery();
- return rows;
- }
- }
- }
- public int ExecuteSql(string SQLString, params SqlParameter[] cmdParms)
- {
- ……//略
- }
- }
- 調(diào)用代碼:
- DbHelperSQLP dbHelperSQL = new DbHelperSQLP(connectionString2);
- dbHelperSQL.ExecuteSql(strSql);
以上詳細(xì)代碼,可以參看本書附帶示例代碼包(光盤\code\ch05\02)。
通過以上示例,我們闡述了如何對工作中常用的共性的數(shù)據(jù)訪問代碼進(jìn)行抽象和封裝,從而達(dá)到復(fù)用及提高工作效率的目的。從而使我們的代碼更簡潔,更易于維護(hù)。