嗨,谢谢你的阅读。
我的英语很差,所以我希望你能理解我。
我有一个MySQL连接,打开和关闭连接,让我读,写,删除和所有的SQL语句,但问题是当我关闭连接时,似乎是关闭连接,但在MySQL保持连接打开。
有代码。
Imports MySql.Data.MySqlClient
Public Shared MySQLConexion As MySqlConnection
Public Shared Function Conectar_Desconectar(ByVal Switch) As Boolean
Conectar_Desconectar = 0
If Switch = 1 Then
MySQLConexion = New MySqlConnection("server=MyServer; user id=MyUser; password=MyPass;database='MyBd'")
Try
MySQLConexion.Open()
Conectar_Desconectar = 1
Catch ex As Exception
End Try
Else
Try
MySQLConexion.Close()
MySQLConexion = Nothing
Conectar_Desconectar = 1
End If
End If
Catch ex As Exception
Exit Function
End Try
End If
Exit Function
End Function
希望你们能帮助我。 感谢
答案 0 :(得分:0)
原因是连接池,许多ADO.NET提供程序实现了它。您的MySqlConnection
实际上是一个相当轻量级的对象,数据库连接本身存在于较低级别。当您创建新的MySqlConnection
时,提供程序会检查是否已存在该连接字符串的池,如果存在则使用它,否则会创建新池。
每个连接字符串只有一个池。当您关闭MySqlConnection
对象时,池的基础数据库连接将保持打开一段时间,以便在打开另一个连接时更快地连接。如果一段时间内没有建立新连接,则提供程序将关闭基础数据库连接。这就是为什么建议按需打开和关闭ADO.NET连接的原因:它们仅针对此进行了优化。