——此文章摘自《C#高級編程(第
版)》定價
元 特價
元 購買
使用數據庫連接
為了訪問數據庫需要提供某種類型的連接參數例如運行數據庫的機器和登錄憑證使用ADO的用戶會很快熟悉NET連接類OleDbConnection和SqlConnection圖顯示了連接類及它們支持的接口
在本章的示例中使用Northwind數據庫它是和NET Framework SDK示例一起安裝的下面的代碼段說明了如何創建打開和關閉Northwind數據庫的連接
using SystemDataSqlClient;
string source = server=(local)\\NetSDK; +integrated security=SSPI; +database=Northwind;
SqlConnection conn = new SqlConnection(source);
connOpen();
// Do something useful
connClose();
圖
如果以前使用過ADO或OLE DB就會很熟悉連接字符串如果使用的是OleDb提供程序就應能剪切和粘貼舊代碼在該示例的連接字符串中使用的參數如下所示連接字符串中的參數用分號分隔開
● server=(local)\\NetSDK表示要連接的數據庫服務器SQL Server允許在同一台機器上運行多個不同的數據庫服務器進程所以這裡在本地機器上連接NetSDK進程
● integrated security=SSPI這個參數使用Windows Authentication連接數據庫最好在源代碼中使用這個參數而不是用戶名和密碼
● database=Northwind這描述了要連接的數據庫實例每個SQL Server進程都可以有幾個數據庫實例
這個示例使用定義的連接字符串打開數據庫連接再關閉該連接連接打開後就可以對數據源執行命令完成後就可以關閉連接
SQL Server有另一個模式的身份驗證它可以使用Windows集成的安全性這樣在登錄時提供的證書就會傳送給SQL Server這適合於刪除連接字符串的uid 和 pwd部分並添加Integrated Security=SSPI
在本章的下載代碼中有一個文件Logincs簡化了本章的示例它鏈接了所有的示例代碼包括用於這些示例的數據庫連接信息可以修改該文件使用自己的服務器名稱用戶和密碼在默認情況下該文件使用Windows集成的安全性但是可以根據需要修改用戶名和密碼
高效地使用連接
一般情況下當在NET中使用稀缺的資源時例如數據庫連接窗口或圖形對象最好確保每個資源在使用後立即關閉盡管NET的設計人員實現了自動的垃圾收集垃圾最終都會被回收但仍需要盡可能早地釋放資源以避免出現資源匮乏的情況
當編寫訪問數據庫的代碼時這是非常明顯的因為使連接打開的時間略長於需要的時間就可能影響其他會話在極端的情況下不關閉連接會使其他用戶無法進入一整組數據表極大地降低了應用程序的性能關閉數據庫連接應是強制的所以本節討論如何構建代碼把一直打開資源的風險降到最低
主要有兩種方式可以確保數據庫連接等類似的稀缺資源在使用後立即釋放
第一種方式—— 利用try…catch…finally語句塊
確保釋放資源的第一種方式是利用try…catch…finally塊確保在finally塊中關閉任何已打開的連接下面是一個小示例
try
{
// Open the connection
connOpen();
// Do something useful
}
[] []
From:http://tw.wingwit.com/Article/program/net/201311/14825.html