在傳統的數據庫應用開發過程中,每每一段應用,往往是先打開數據庫連接,然後下面的代碼一直使用這個連接進行數據庫交互,但是.Net的數據庫連接池緩沖卻可以分別把每一段應用包裝起來,在編寫這些小塊包的時候,不再顧及非要去使用原來打開的連接,而直接從連接池中申請,使用完畢以後歸還,由於把大段的代碼分散到幾個相對較小的模塊中去,化整為零可以為我們簡化整個代碼的復雜度,從而提高開發效率。
在.Net 2.0中如果你用的數據庫連接字符串每次都是一樣的,系統會自動啟用連接池的,這種自動啟動連接池的方案可以把傳統的重復打開數據庫連接的開銷降到最低。這樣,我們就可以把精力放在解決實際應用邏輯上面了。
而在很多代碼中,常常有需要通過運行一個SQL獲取一個統計值,或是英文或數字到漢字的轉義過程,並不需要太多的數據庫操作,利用數據庫連接池的緩沖特性,我們寫這樣的封裝函數來解決問題的時候就不用擔心性能的因素,直接感受代碼精簡帶來的編程樂趣!如以下示例代碼返回一種人群在總人數的百分比:
string strsql = string.Format("select count(*) from finaltest where {0}={1}", strKey, nScore);
X = DBFunc.GetValueBySql(strsql);
if(X==0)return 0;
string strsql = "select count(*) from finaltest ";
Y = DBFunc.GetValueBySql(strsql);
return X*100/Y;
附DBFunc(數據庫封裝類)的一個靜態函數!
class DBFunc{
public static int GetValueBySql(string strsql)
{
SqlConnection _connection = new SqlConnection(WebConfigurationManager.ConnectionStrings["lovesiteconn"].ConnectionString);
_connection.Open();
SqlCommand cmd = new SqlCommand(strsql, _connection);
SqlDataReader reader = cmd.ExecuteReader();
int nRet = 0;
if (reader.Read()) {
nRet = CommFunc.ParseInt(reader[0].ToString());
}
reader.Close();
_connection.Close();
_connection = null;
return nRet;
}
}