是否可以使用类连接到我的SQL Server数据库?

时间:2015-04-12 07:55:49

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

我有一个名为dbOPS的公共类,它有一些子函数和函数,如:

 Public Function getSqlReader(ByVal sql As String) As SqlDataReader
    Dim cmd As New SqlCommand(sql, getConn)
    cmd.CommandTimeout = 360
    Dim dr As SqlDataReader = cmd.ExecuteReader(Data.CommandBehavior.CloseConnection)

    Return dr
End Function

Public Function getSqlScalar(ByVal sql As String)
    Dim cmd As New SqlCommand(sql, getConn)
    cmd.CommandTimeout = 360
    Dim cnt = cmd.ExecuteScalar
    closeCX()
    Return cnt
End Function

Public Sub ExecuteSql(ByVal sql As String)
    Dim cmd As New SqlCommand(sql, getConn)
    cmd.CommandTimeout = 360
    cmd.ExecuteNonQuery()
    closeCX()
End Sub

然后,我每页使用以下命令一次,并在整个页面中使用db变量很多(很多次):

Dim db as new dbOPS

最近,我开始收到很多错误

  

ExecuteScalar需要开放且可用的连接。连接的当前状态是连接

这是原因吗?

有没有办法绕过它而不重写每个页面和每个命令来打开自己的连接?

由于

1 个答案:

答案 0 :(得分:0)

最好检测连接并重新打开它们,以防它在执行命令之前未打开。

If (cmd.Connection.State != ConnectionState.Open) Then
    cmd.Connection.Open()

将此作为辅助方法的一部分。