使用workbench。如果我打开一个到mysql的连接(在vb中),它将显示一个连接已经打开。如果我关闭连接,(在workbench上),则表明连接仍然打开。如果我尝试重新打开同一个连接,它将打开,它将关闭没有任何问题。但是workbench显示第一个连接仍然是打开的。它一直打开,直到我退出应用程序。
Try
Using myConnection As New MySqlConnection(_ServerString_vip)
myConnection.Open()
myConnection.Close()
End Using
End Using
Catch ex As Exception
MsgBox("Error getting Username Information.")
End Try
2条答案
按热度按时间vvppvyoh1#
@他说得绝对正确。我在网上到处找,找不到答案。希望这个问题能帮助很多人。最终连接会自动断开。
vvppvyoh2#
您应该在ado.net中阅读一下连接池。
一
DbConnection
对象实际上相当轻,并且存在于比实际数据库连接更高的级别。当你打开一个DbConnection
对象时,将打开一个低级数据库连接。当你关上门的时候DbConnection
对象时,低级数据库连接将保持打开状态一段时间。这是因为打开和关闭它是一个昂贵的操作。如果你打开另一个DbConnection
对于相同的连接字符串,将重用相同的低级数据库连接。只有在低级别连接保持一段时间未使用时,它才会关闭。这不是你必须担心的事情。这就是ado.net中一直存在的方式,系统会自动处理它。你一直在做你正在做的事情,即创造
DbConnection
对象Using
语句,剩下的由系统处理。顺便说一下,调用时显式打开连接没有意义
Fill
或者Update
在数据适配器上。这两种方法都会自动打开连接,然后再次关闭。如果希望连接在运行后保持打开状态,则只应显式打开连接Fill
或者Update
打电话,例如,如果你有更多的工作要做的连接。