我有一個 VB.NET 方法,它連接到資料庫并讀取值。并且這個值在多個地方被多次使用。該方法如下所示:
Public Function IsConfigurationEnabled() As Integer
Dim IsEnabled As Integer
Dim sqlText As String
sqlText = "select value from [dbo].[Settings] where Configuration='XXX'"
Dim connection As SqlConnection = New SqlConnection()
Dim cmd As SqlCommand
connection.ConnectionString = "Data Source=localhost;Initial Catalog=XXX;Integrated Security=True"
Try
connection.Open()
cmd = New SqlCommand(sqlText, connection)
IsEnabled = Convert.ToInt32(cmd.ExecuteScalar())
cmd.Dispose()
connection.Close()
Catch ex As Exception
AuditTrail(vbLogEventTypeError, "IsConfigurationEnabled :Error opening SQL Connection ")
End Try
Return IsEnabled
End Function
我只想連接到資料庫一次。
因為資料庫中的值永遠不會改變(或很少改變)。
有沒有辦法做到這一點?
uj5u.com熱心網友回復:
在呼叫代碼中存盤回傳值可能是最好的選擇。但是,您也可以使用延遲初始化,如下所示。
Public Function IsConfigurationEnabled() As Integer
Static isEnabled? As Integer
If isEnabled.HasValue Then
Return isEnabled.Value
End If
Dim sqlText As String = "select value from [dbo].[Settings] where Configuration='XXdX'"
Using connection = New SqlConnection()
connection.ConnectionString = "Data Source=localhost;Initial Catalog=Junk;Integrated Security=True"
Try
connection.Open()
Using cmd = New SqlCommand(sqlText, connection)
isEnabled = Convert.ToInt32(cmd.ExecuteScalar())
End Using
connection.Close()
Catch ex As Exception
AuditTrail(vbLogEventTypeError, "IsConfigurationEnabled :Error opening SQL Connection ")
End Try
End Using
Return IsEnabled
End Function
在實際專案中使用上述代碼會引起爭議,但我希望它具有指導意義。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/515499.html
標籤:sql服务器VB.net
