2010-02-02 45 views
8

背景:
我有一個應用程序,它很好地將我的接口邏輯與處理查詢的中間層邏輯分離到數據庫。我做的自定義排序和縮小,所以我不使用許多SqlDataSources,而是調用了很多與SqlCommands存儲過程很多。我應該使用多少個SqlConnection實例

我使用窗體身份驗證創建保護子目錄。在受保護目錄中的web.config文件中,我有更多連接字符串鏈接到具有更高特權角色的用戶。

問題:
我應該在我的中間層共享一個SqlConnection對象以切出重複代碼,還是應該爲每個操作創建一個新實例?共享SqlConnection我可以重新實例化,如果我需要更改連接字符串以訪問受保護的存儲過程。這裏有最佳做法嗎?

回答

10

不要擔心共享,以節約資源。 .NET將爲你管理它,默認情況下它會執行連接池。編寫代碼清晰易懂,並讓.NET處理這些細節。

8

根據您的需要,因爲不久居住地,通過使用語句來創建多達SqlConnections:

using (var connection = new SqlConnection(...)) { 
    connection.Open(); 
    ... 
} 

SQL連接從連接池,這將自動爲您管理爭取。

請參閱:http://msdn.microsoft.com/en-us/library/8xx3tyca(VS.80).aspx

+2

+1爲答案。 「使用」語法絕對是要走的路(我認爲它也可以用於文件/流訪問)。 – 2010-02-02 22:47:27

+2

當然可以,對於任何一次性資源(實現IDisposable的類) – 2010-02-02 22:49:45

相關問題