gpt4 book ai didi

mysql - VB.Net重用sql连接

转载 作者:太空宇宙 更新时间:2023-11-03 12:32:32 25 4
gpt4 key购买 nike

我是vb.net新手,请问有没有办法重用sql连接命令?

这是我的 main.vb 的代码:

 Dim ServerString As String = "Server=localhost;User Id=root;Password=;Database=pos"
Dim SQLConnection As MySqlConnection = New MySqlConnection

Private Sub Main_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
SQLConnection.ConnectionString = ServerString

Try
If SQLConnection.State = ConnectionState.Closed Then
SQLConnection.Open()
Else
SQLConnection.Close()
End If
Catch ex As Exception
MsgBox(ex.ToString)
End Try

因为我想在我的其他类(class)中使用它,所以我不想以每种形式重新编写这段代码。非常感谢任何帮助。谢谢。

最佳答案

重用连接(或任何其他非托管资源)通常不是一个好主意。你应该尽快处理掉它们。

但是无论如何总是创建一个新的连接是没有问题的,因为你正在使用 ADO.NET connection-pool默认情况下。所以你不是在创建(和打开)一个新的物理连接。实际上,当您关闭/处置连接时,您只是告诉池现在可以在其他地方重用连接。当您打开它时,它不能在其他地方使用,这就是为什么始终关闭它很重要。

因此总是使用 Using-statement .

Public Shared Function GetColumn1(column2 As Int32) As String
Dim sql = "SELECT Column1 From dbo.tableName WHERE Column2=@Column2 ORDER BY Column1 ASC"
Using con = New SqlConnection(connectionString)
Using cmd = New SqlCommand(sql, con)
cmd.Parameters.AddWithValue("@Column2", column2)
Try
con.Open()
Using rd = cmd.ExecuteReader()
If rd.Read() Then
Dim Column1 As String = rd.GetString(0)
Return Column1
Else
Return Nothing
End If
End Using
Catch ex As Exception
' log the exception here or do not catch it '
' note that you don't need a Finally to close the connection '
' since a Using-Statement disposes the object even in case of exception(which also closes a connection implicitely)
End Try
End Using
End Using
End Function

以上是一个示例方法,用于证明您不应重复使用任何东西。

关于mysql - VB.Net重用sql连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14712494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com