所以我在ASP.Net网站上使用Visual Basic DataSet,当多个用户访问该网站时,我得到了以下内容:
ExecuteReader需要一个开放且可用的连接。连接的当前状态为Open。
我可以创建与SQL数据库的多个连接吗?
我知道数据集背后有正常的代码,所以我想知道是否可以修改这些文件中的某些内容,为每个用户会话创建一个新连接。
我已经为c#添加了标签,因为如果c#中弹出一个答案,我会转换它......
答案 0 :(得分:2)
在像ASP.NET这样的多线程,多用户环境中,您必须远离共享连接。你最好根据需要创建连接然后处理它。在幕后,.NET将使用连接池,SQL Server在处理大量多个连接时不会有任何问题。伪代码:
' SQLCommand to fill DataTable
Dim dt As New DataTable
Using cnn As New SqlConnection("someconnectionstring")
Dim cmd As New SqlCommand("SELECT * FROM SomeTable", cnn)
cnn.Open()
dt.Load(cmd.ExecuteReader)
cnn.Close()
End Using
' TableAdapter to fill DataSet
Dim ds As New DataSet
Dim ta As New SqlDataAdapter
ta.Fill(ds)
The [Using statement][1] lets .NET handle the disposal of the connection for you.