在vb.net中正确关闭adodb连接
在vb.net中,有些应用程序使用adodb访问mysql服务器在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
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“