新聞系統——SQLHelper助手最佳化,新聞系統sqlhelper
在前面我們機房重構的時候已經用過了SQLHelper,但當時就是只會應用,知道利用SQLHelper能夠協助我們串連資料庫,但對於怎樣書寫還是不太清楚,今天就揭開這層神秘的面紗,來真正體驗如何來編寫SQLHelper助手。
SQLHelper就是訪問資料庫的,執行的語句就是SQL語句或者預存程序,接下來經過多次調整之後,使助手既能執行sql查詢語句,也能執行預存程序。
首先分析一下SQLHelper:
1、變數初始化:
局部變數必須初始化,否則會有編譯錯誤。
private SqlConnection conn = null; private SqlCommand cmd = null; private SqlDataReader sdr = null;
2、串連資料庫
通過建構函式,建立一個公用的資料庫連接方式
public SQLHelper() { string connStr = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString; conn = new SqlConnection(connStr); }
3、開啟串連
通過判斷資料庫連接是否開啟,關閉時開啟資料庫連接。
private SqlConnection GetConn() { if (conn.State == ConnectionState.Closed) { conn.Open(); } return conn; }
4、執行SQL語句或預存程序
紅色的是傳入的參數,利用try...catch語句來來簡化SQLHelper的書寫。
<span style="color:#362e2b;"> /// <summary> /// 執行不帶參數增刪改SQL語句或預存程序 /// </summary> /// <param name="</span><span style="color:#ff0000;">cmdText</span><span style="color:#362e2b;">"></span><span style="color:#ff0000;">增刪改SQL語句或預存程序</span><span style="color:#362e2b;"></param> /// <param name="</span><span style="color:#ff0000;">ct</span><span style="color:#362e2b;">"></span><span style="color:#ff0000;">命令類型</span><span style="color:#362e2b;"></param> /// <returns></returns> public int ExecuteNonQuery(string cmdText, CommandType ct) { int res; try { cmd = new SqlCommand(cmdText, GetConn()); res = cmd.ExecuteNonQuery(); } catch (Exception ex) { throw ex; ’拋出錯誤 } finally { if (conn.State == ConnectionState.Open)'判斷串連是否關閉 { conn.Close(); } } return res; }</span>
總結
經過改造之後的SQLHelper,已經和之前的SQLHelper助手有了很大的精簡,不但代碼的重複率大大下降,而且思路更加清晰。經過總結之後對於掌握SQLHelper更加容易,正所謂一回生,二回熟,再次總結收穫更多。