2010-07-12 73 views

回答

2

我建議你離開請求緩存獨自處理ADO.NET連接並使用connection pooling(這是默認值)。只要你想在任何地方做到這一點,它會正確關閉/處置:

using (SqlConnection cn = new SqlConnection(connectionString)) 
{ 
    using (SqlCommand cm = new SqlCommand(commandString, cn)) 
    { 
     cn.Open(); 
     cm.ExecuteNonQuery(); 
    } 
} 
+0

我會認爲@Downvoter正在打我,原因與@LukeH相同。你爲什麼不發表一個答案,因爲你是如此重要? – 2010-07-12 15:57:34

5

我會強烈建議您不把首先在緩存中的連接。

只要您需要連接,只需打開一個新連接(儘可能晚)。完成後只需關閉/處理(儘可能早)。您可能知道確保此行爲的最簡單模式是using塊。

從池中打開和關閉連接非常便宜,默認情況下啓用連接池。讓連接池處理諸如緩存等細節:這就是它的存在,如果你自己做,它確實沒有任何好處 - 並且有很多潛在的缺陷。

+2

@Downvoter:小心解釋爲什麼? – LukeH 2010-07-12 12:43:59

+0

因爲這不是回答這個問題,所以網站對它進行了步驟。這就像回答網絡服務問題一樣,不要使用網絡服務,因爲糟糕的事情可能會發生。我不能刪除這個問題,所以我會重新整理一下。 – MatthewMartin 2010-07-12 15:45:18

+1

@MatthewMartin:如果所有的StackOverflow都回答了人們問的所有*錯誤的問題(而不是暗示海報可能完全錯誤地咆哮錯誤的樹),那麼它會更糟糕。您不能指責某人嘗試幫助您解決與您最初發布的代碼有關的嚴重問題。 – 2010-07-12 15:52:27

相關問題