MySQL连接关闭不关闭连接.NET

时间:2014-07-07 19:37:50

标签: mysql vb.net database-connection

嗨,谢谢你的阅读。

我的英语很差,所以我希望你能理解我。

我有一个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

希望你们能帮助我。 感谢

1 个答案:

答案 0 :(得分:0)

原因是连接池,许多ADO.NET提供程序实现了它。您的MySqlConnection实际上是一个相当轻量级的对象,数据库连接本身存在于较低级别。当您创建新的MySqlConnection时,提供程序会检查是否已存在该连接字符串的池,如果存在则使用它,否则会创建新池。

每个连接字符串只有一个池。当您关闭MySqlConnection对象时,池的基础数据库连接将保持打开一段时间,以便在打开另一个连接时更快地连接。如果一段时间内没有建立新连接,则提供程序将关闭基础数据库连接。这就是为什么建议按需打开和关闭ADO.NET连接的原因:它们仅针对此进行了优化。