在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上仍然可以看到该连接
为什么呢?以及如何确保连接已关闭。
感谢
答案 0 :(得分:1)
我对您正在做的事情没有多少经验,但这通常是我使用sqlserver连接的路径。 Using
会自动关闭您的连接。
Using ADOconnect
'operations
End Using
答案 1 :(得分:1)
将以下内容添加到ConnectionString
:
Pooling=False;