我想知道,如果它是一個好主意,保持數據庫連接(System.Data.SqlClient.SqlConnection())開放或者是推薦使用後關閉連接,然後再次打開它需要的時候? (注意:我的應用會連續運行數天/月)。我有點被推向開放。哪種解決方案更好?C#連接到數據庫
Q
C#連接到數據庫
0
A
回答
1
你絕對應該儘可能晚地打開你的連接,並儘快將其關閉。
不僅應該在完成時關閉它們,即使在緊密相關的命令之間也應該關閉它們,如果其間存在任何其他代碼。實際上,讓我這樣說:儘可能快速和頻繁地關閉您的ADO.NET Connection對象。 (也就是說,不要做明顯愚蠢的事情來關閉顯然不應該關閉的連接)
默認情況下,SQL Server的ADO.NET提供程序(以及大多數其他主要提供程序)提供連接池。這實際上會爲你管理這些連接的創建和銷燬 - 但只有當你完成後關閉它們。
如果換在using
塊的連接對象的創建和使用,這是很容易做到......
using(SqlConnection conn = new SqlConnection(...))
{
///Open and use the connection
} //the 'using' causes it to automatically be closed.
3
一般來說,處理它,當你用它做,不要擔心。
默認情況下,ADO.NET實現了connection pooling,因此連接在幕後保持打開狀態,以免您一直打開新連接時的性能損失。
另一個原因關閉在代碼中的連接 - 如果你失去連接到數據庫服務器,當你不使用的連接,你不會遇到一個錯誤,如果你保持連接可能出現這種情況。
0
打開的連接,如果你需要,不浪費資源;-)
相關問題
- 1. 連接到MySQL數據庫與C#
- 2. 使用C#連接到Sybase數據庫
- 3. 連接到在線數據庫在c#
- 4. 連接到數據庫錯誤的C#
- 5. 將SQL數據庫連接到C#
- 6. 錯誤連接到數據庫ASP.NET C#
- 7. VS C#連接到mySQL數據庫
- 8. 連接到OpenOffice的數據庫從C#
- 9. 從.NET/C連接到Oracle數據庫#
- 10. 連接到SQL數據庫在c#
- 11. C#連接到Oracle數據庫
- 12. 連接到MySQL數據庫C#
- 13. 連接到數據庫的C#
- 14. 使用C++連接到oracle數據庫
- 15. C#連接到Postgres數據庫
- 16. c#使用MySQL連接到數據庫
- 17. 無法連接到數據庫C#
- 18. 連接到Oracle APEX數據庫在C#
- 19. 以aspx連接到SQL數據庫,c#
- 20. C++數據庫連接到mysql
- 21. C#到網站數據庫連接
- 22. C#postgres數據庫連接
- 23. C#數據庫連接SQL
- 24. C++ MySQL數據庫連接
- 25. Objective-C數據庫連接
- 26. C++數據庫連接?
- 27. C++數據庫連接
- 28. 連接到數據庫並使用C#中的數據庫#
- 29. 用於C-的MySQL連接器連接到遠程數據庫
- 30. 連接字符串爲c#.net到mysql數據庫連接
我找到了'using'塊誤導最後的代碼示例:'using'不會'。開()','也不.Close()'的連接,這些操作仍然需要手動完成。 – stakx 2010-11-21 14:41:09
的'using'聲明導致自動關閉連接。有沒有需要顯式調用'關閉()'當你調用'的Dispose()',這是'using'構造做什麼。 – 2010-11-21 14:43:48