在vb.net中正确关闭adodb连接

在vb.net中正确关闭adodb连接,vb.net,ado.net,adodb,mysql-management,Vb.net,Ado.net,Adodb,Mysql Management,在vb.net中,有些应用程序使用adodb访问mysql服务器 private adoconnect as new adodb.connection public adors as new adodb.recordset public function returnadors(byval column as string) as string return adors.fields(column).value.tostring end function Public Function

在vb.net中,有些应用程序使用adodb访问mysql服务器

private adoconnect as new adodb.connection
public adors as new adodb.recordset

public function returnadors(byval column as string) as string
 return adors.fields(column).value.tostring
end function


Public Function ReadData(ByVal strQuery As String, Optional ByVal strWhere As String = vbNullString) As Boolean

        Try

            If ADOConnect.State = ConnectionState.Open Then Call CloseConnection()
            ADOConnect.Open(dsn, user, pass)
            ADORS.Open(strQuery, ADOConnect, ADODB.CursorTypeEnum.adOpenDynamic)
            If not ADORS.EOF  Then Return True

        Catch ex As Exception

            msgbox(ex)

        End Try

        Return False

End Function

public sub closeconnection()
   if adoconnect.state = connectionstate.open then adoconnect.close
end sub
现在假设我们想用数据库中的内容填充文本框:

if readdata("SELECT NAME FROM USERS WHERE ID = 1") then
    me.textbox1.text = returnadors("NAME")
end if
call closeconnection
重新编写这些函数是一项艰巨的任务——除非绝对需要,否则我对它不感兴趣

这是我的问题。

即使连接已关闭(我已通过代码,它也会关闭) 该连接在处于睡眠状态的sql server上仍然可见

为什么??我如何确保连接已关闭


谢谢

我对您所做的工作没有太多经验,但这通常是我使用sqlserver连接的方式<代码>使用将自动关闭您的连接

Using ADOconnect
   'operations
End Using

将以下内容添加到
连接字符串中

Pooling=False;

这听起来太简单了,但是如果在关闭连接之前更改代码以关闭adors呢?您的意思是在readdata()函数中关闭adoconnect吗?不,我的意思是在closeconnection函数中?编辑-此外,在添加后将其设置为nothing(无)。在服务器上,仍然保持连接在睡眠状态下打开。尽管对尝试和错误方法表示歉意,但下面的@Akram的路径是正确的,问题是(很可能是)连接池。看和。是的,但我能想到的一个问题是,一旦readdata函数完成,并且达到end using,连接就关闭了。因此,让我们假设如果form1中的某个地方使用returnadors函数,则连接已关闭,不会返回任何数据,只是一个错误。非常确定它会重新打开它。让我尝试一下,看看会发生什么,我会告诉您,我得到了adodb类型的“使用”操作数错误。连接必须实现“system.idisposable”。私有cn作为字符串=“DSN=DSN;uid=用户;pwd=pw!;Pooling=false“这仍然会将serverConst cn上的连接状态保留为sleep as String=“DSN=DSN;uid=用户;pwd=pw;OLE DB服务=-4“