gpt4 book ai didi

SqlDataReader vb.net 保持连接打开

转载 作者:行者123 更新时间:2023-12-04 16:01:46 25 4
gpt4 key购买 nike

我正在使用这段代码来获取数据:

 Dim connetionString As String
Dim connection As SqlConnection
Dim sqlq As String

sqlq = "select top 1 * from table1 where smth"

Dim ds As New DataSet
connetionString = "Data Source=db;Initial Catalog=ic;User ID=id;Password=pass"
connection = New SqlConnection(connetionString)

Try
Using connection
Dim command As SqlCommand = New SqlCommand(sqlq, connection)
connection.Open()
Dim reader As SqlDataReader = command.ExecuteReader()
If reader.HasRows Then
Do While reader.Read()
x = reader.GetString(5)
Loop
End If
reader.Close()
End Using
Catch ex As Exception
End Try

这种类型的连接(使用不同的 sqlq [query])我在不同的函数中使用了很多,每次我都关闭连接。我想对其进行优化,以便花费更少的时间来获取数据。我该怎么做?

最佳答案

最佳做法是始终在完成连接后立即处理/关闭它。实际上 connection-pool不会关闭底层物理连接,但仅在关闭时将此连接标记为可重用。因此,如果您不关闭连接,它就不能被重用,因此池需要创建一个非常昂贵的新物理连接。

所以只有一些小的改进:

Const sql = "select top 1 * from table1 where smth"
Dim table As New DataTable()

Using con = New SqlConnection("Data Source=db;Init ....")
Using command = New SqlCommand(sql, con)
Using da= New SqlDataAdapter(command)
da.Fill(table)
End Using
End Using
End Using

您应该对任何实现IDisposable 的对象使用Using。您不应使用空的 Catch block 。

关于SqlDataReader vb.net 保持连接打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13563617/

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