允许使用VS数据集与MS SQL数据库建立多个活动连接

时间:2017-08-08 12:25:24

标签: c# asp.net sql-server vb.net

所以我在ASP.Net网站上使用Visual Basic DataSet,当多个用户访问该网站时,我得到了以下内容:

  

ExecuteReader需要一个开放且可用的连接。连接的当前状态为Open。​​

我可以创建与SQL数据库的多个连接吗?

我知道数据集背后有正常的代码,所以我想知道是否可以修改这些文件中的某些内容,为每个用户会话创建一个新连接。

我已经为c#添加了标签,因为如果c#中弹出一个答案,我会转换它......

1 个答案:

答案 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.