sql >> Base de Datos >  >> RDS >> Mysql

Recuento de grupos de conexiones de MySQL

Hay varias cosas en tu código.

  • Primero active Option Strict . La función se declara para devolver una cadena, pero está intentando devolver Object con Return result
  • Todo que implementa un Dispose El método debe usarse dentro de un Using cuadra. Esto le permite declarar e inicializar un objeto, usarlo y desecharlo al final.
  • Parameters.Add es mejor que AddWithValue . El último obliga al proveedor de base de datos a adivinar el tipo de datos en función de los datos.
  • Dependiendo de la carga y si ese método se usa mucho, puede cargar los datos en una DataTable y haga búsquedas en eso en lugar de consultar la base de datos una y otra vez.

El problema central es (probablemente) que no se deshace del DBCommand objeto. Mira el constructor que usas:

Dim cmdx As New MySqlCommand(cmdTextx, connx)

El DBCommand al objeto se le pasa una referencia a la conexión. Aunque elimine explícitamente la conexión, cmdx todavía tiene una referencia a él, y eso no fue desechado. Using los bloques hacen que sea sencillo asegurarse de que las cosas se eliminen:

Dim sql = "Select `Cert` From `Courses` WHERE `ID`[email protected]"

Using dbCon As New MySqlConnection(MySQLConnStr)
    Using cmd As New MySqlCommand(sql, dbCon)
        cmd.Parameters.Add("@Id", MySqlDbType.Int32).Value = CourseTypeID
        dbCon.Open()
        Dim result = cmd.ExecuteScalar

        If result Is Nothing OrElse result Is DBNull.Value Then
            Return String.Empty
        Else
            Return result.ToString()
        End If
    End Using           ' close, dispose of conn
End Using               ' dispose of DBCommand

Para reducir la sangría, puede "apilar" elementos en uno Using bloque:

Using connx As New MySqlConnection(MySQLConnStr),
    cmd As New MySqlCommand(sql, connx)
    ...
End Using

Tenga en cuenta la coma al final de la primera línea.

Me sorprendería si esta no fuera la causa de la filtración (por supuesto, habría que cambiar todo el código).