C# 允许使用VS数据集与MS SQL数据库进行多个活动连接
因此,我在ASP.Net网站上使用Visual Basic数据集,当多个用户访问该网站时,我得到的信息大致如下: ExecuteReader需要打开且可用的连接。连接的当前状态为“打开” 我可以创建到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将在后台使
我标记了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没有必要总是将打开和关闭配对。只有在需要时才这样做。不要留下无用的代码。