2011-09-02 83 views
0

我已經繼承了一個應用程序,該應用程序使用全局數據庫sqlconnection對象來訪問應用程序中每個表單的數據庫。連接在應用程序啓動時建立。.net中的全局數據庫連接

我認爲始終打開連接不是很好的做法,我更願意更改它,因此每次需要訪問數據庫時都會打開數據庫連接並關閉它。

所以我想知道我是否在這裏。

這是我會改爲使用,任何改進的建議是歡迎:

Public Sub UpdateDatabase(ByVal command As SqlCommand, ByRef NumError As Double, ByRef DescError As String) 
    Using connection As New SqlConnection(connectionString) 
     Try 
      command.ExecuteNonQuery() 
      command.Dispose() 
      NumError = 0 
      DescError = "" 
     Catch ex As Exception 
      NumError = Err.Number 
      DescError = Err.Description 
     End Try 
    End Using 
End Sub 

我送SqlCommand對象的方法,而不是查詢字符串,因爲我可以將參數添加到SqlCommand對象。

回答

1

您處理與using的連接的方式沒有問題,連接將始終關閉併爲您處理。

從調用方傳遞命令的方式並不是很好,沒有數據庫引擎隔離。對於參數,您可以簡單地傳遞一個名稱和值的列表,並在上面的類中添加參數,而不是在您調用此代碼的100.000個位置中。

不要忘記將新打開的連接關聯到該命令,否則它將無法工作。

一些人也把周圍的命令另一個使用這樣的命令配置時,使用的連接裏面...

+0

'爲參數,你可以簡單地傳遞名稱和值的列表,並在添加參數你上面的類,而不是在你稱之爲這個代碼的100.000個地方。「我不知道該怎麼做,你有什麼機會可以指點我做一個例子嗎? – rfc1484

+1

@ rfc1484:這裏是你的鏈接和示例:) http://www.sharpdeveloper.net/content/archive/2007/05/25/creating-sqlparameters-best-practices.aspx –