這可能是我的誤解,但我確實有很大的問題。請考慮以下代碼:我怎樣才能真正關閉sql連接
static void Main(string[] args)
{
using (SqlConnection con = new SqlConnection(connectionString))
{
con.Open();
int i = 10;
con.Close();
con.Dispose();
}
int y = 10;
}
在行int y = 10
,放置一個斷點。
現在,轉到您的SQL Server並右鍵單擊與上述代碼中connectionString
相同連接的SQl連接,然後選擇「活動監視器」。運行上面的代碼並檢查SQL Server活動監視器。當執行con.Open()
時,活動監視器顯示已建立連接。到現在爲止還挺好!但是當光標擊中表示int y = 10;
的行時,活動監視器仍然顯示不應該在那裏的連接!因爲我關閉了它,我放棄了它,甚至我也通過了使用聲明。
有誰知道我如何關閉連接?
此行爲很正常,是由於連接池。要立即關閉連接,您必須在連接字符串中禁用連接池,但這會損害性能。 –
添加到邁克爾的評論,看到這個[線程](http://stackoverflow.com/questions/20203117/using-keyword-doesnt-close-an-open-sql-connection) – Andrei
你的'Dispose'調用是不必要的:這是什麼'使用'封裝給你。 – noelicus