在C#中沒有其他的托管語言,沒有自動的,決定性的析構的概念,而是有一個垃圾收集器,它會在未來的上時刻釋放資源,所以當忘記關閉數據庫連接可能傳導致
.NET可執行程序的各種問題。解決的方法是原來在創建Sqlconnection時使用Using (sqlconection conn=new sqlconnection(strSQL))
這個可以確保塊無論是如何退出的,using句子都會確保關閉數據庫連接
使用using語句,定義一個范圍,在范圍結束時處理對象。(不過該對象必須實現了IDisposable接口)。其功能和try ,catch,Finally完全相同。
using (SqlConnection cn = new SqlConnection(SqlConnectionString)){……}
//數據庫連接
using (SqlDataReader dr = db.GetDataReader(sql)){……}
//DataReader
當然,如何可以將try...catch...finally一起結合來用。如:
try
{
using (sqlconnection conn=new sqlconnection(source))
{
//open the connection
conn.open();
........
conn.close
}
}
catch(sqlexception e)
{
//log the exception;
}