我有一个名为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需要开放且可用的连接。连接的当前状态是连接
这是原因吗?
有没有办法绕过它而不重写每个页面和每个命令来打开自己的连接?
由于
答案 0 :(得分:0)
最好检测连接并重新打开它们,以防它在执行命令之前未打开。
If (cmd.Connection.State != ConnectionState.Open) Then
cmd.Connection.Open()
将此作为辅助方法的一部分。