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

问题描述:

我有一个名为dbOPS一个公共类,有一些潜艇和功能,如:是否可以使用类连接到我的SQL Server数据库?

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

取决于,但不要忘记你使用usings不知道VB.NET中的关键词,以便处置你创建的一次性对象! Ipmlement函数给你一个新的打开的SQLConnection,尽快完成CRUD的处理连接 – Legends

+0

我有我的所有读者关闭和配置设置 – Yoni

+0

它们在错误的情况下关闭吗? – Legends

这也可能是最好的检测连接,然后重新打开,以防万一它不是之前执行命令打开。

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

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