【发布时间】:2011-04-19 21:51:51
【问题描述】:
在 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上依然可见
为什么?以及如何确保连接已关闭。
谢谢
【问题讨论】:
-
这听起来太简单了,但是如果您在关闭连接之前更改代码以关闭 adors 怎么办?
-
你的意思是关闭readdata()函数中的adoconnect吗?
-
不,我的意思是 adors.Close 在 closeconnection 函数中?编辑 - 另外,之后将其设置为空。
-
添加了它,但是仍然在服务器上以睡眠状态打开连接
标签: vb.net ado.net adodb mysql-management