C# 允许使用VS数据集与MS SQL数据库进行多个活动连接

C# 允许使用VS数据集与MS SQL数据库进行多个活动连接,c#,asp.net,sql-server,vb.net,C#,Asp.net,Sql Server,Vb.net,因此,我在ASP.Net网站上使用Visual Basic数据集,当多个用户访问该网站时,我得到的信息大致如下: ExecuteReader需要打开且可用的连接。连接的当前状态为“打开” 我可以创建到SQL数据库的多个连接吗 我知道数据集后面有普通的代码,所以我想知道是否可以修改这些文件中的某些内容,为每个用户会话创建一个新的连接 我标记了c,因为如果c中出现一个答案,我将转换它…在ASP.NET这样的多线程、多用户环境中,您必须远离共享连接。您最好根据需要创建连接,然后处理它。NET将在后台使

因此,我在ASP.Net网站上使用Visual Basic数据集,当多个用户访问该网站时,我得到的信息大致如下:

ExecuteReader需要打开且可用的连接。连接的当前状态为“打开”

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

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


我标记了c,因为如果c中出现一个答案,我将转换它…

在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.

在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.

您的连接是静态的/共享的吗?我相信是共享的连接,我没有对数据集做任何更改(除了添加表)。您的连接是静态的/共享的吗?我相信是共享的连接,我没有对数据集做任何更改(除了添加表),但是
Close()
在使用
@Crowcoder和
中是冗余的。Open()
在使用
.Fill()
时是冗余的。我已经将现有的XSD代码转换为vb文件,我可以按照上面指定的方式使用生成的类和函数吗?可以,尽管将自动生成的代码移到自己的VB文件中会使更新代码有点麻烦。它完全违背了像dataset designer这样的图形代码生成工具的目的…@Hobbes没有必要总是将打开和关闭配对。只有在需要时才这样做。不要把无用的代码留在里面。是的,但是
Close()
中是多余的,使用
@Crowcoder和
。Open()
在使用
时是多余的。Fill()
就是这样。我已经将现有的XSD代码转换成了vb文件,我可以按照上面指定的方式使用生成的类和函数吗,尽管将自动生成的代码移到自己的VB文件中会使更新代码有点麻烦。它完全违背了像dataset designer这样的图形代码生成工具的目的…@Hobbes没有必要总是将打开和关闭配对。只有在需要时才这样做。不要留下无用的代码。