Dot-Net

SqlConnection 的 Dispose 方法會干擾連接池嗎?

  • February 9, 2016

據我了解,.Net 將SqlConnection預設連接字元串相同的對像池化。如果我呼叫 Dispose 方法,連接是否仍會被池化?

PageLoad這個問題是在 ASP.NET 應用程序的上下文中提出的,該應用程序有時會在單個事件中對數據庫進行多次訪問。我希望將連接池化,但想確認數據操作完成後關閉和處理連接不會干擾 .NET 對連接池的處理。

使用連接池時,關閉 aSqlConnection只是告訴連接池您已完成它。然後池將決定是否實際關閉連接,或者重用它。

MSDN 文件

如果 SqlConnection 超出範圍,它不會被關閉。因此,您必須通過呼叫 Close 或 Dispose 顯式關閉連接。Close 和 Dispose 在功能上是等效的。如果連接池值 Pooling 設置為 true 或 yes,則將底層連接返回到連接池。另一方面,如果 Pooling 設置為 false 或 no,則與伺服器的底層連接將關閉。

引用自:https://stackoverflow.com/questions/6765733