sql >> Databáze >  >> RDS >> Mysql

Počet připojení MySQL

Váš kód obsahuje několik věcí.

  • Nejprve zapněte Option Strict . Funkce je deklarována tak, že vrací řetězec, ale vy se pokoušíte vrátit Object pomocí Return result
  • Všechno který implementuje Dispose metoda by měla být použita uvnitř Using blok. To vám umožňuje deklarovat a inicializovat objekt, používat jej a na konci zlikvidovat.
  • Parameters.Add je lepší než AddWithValue . To později nutí poskytovatele DB odhadnout datový typ na základě dat.
  • V závislosti na zatížení a na tom, zda se tato metoda často používá, můžete načíst data do DataTable a provádějte v tom vyhledávání spíše než dotazování DB znovu a znovu.

Základní problém je (pravděpodobně), že se nezbavíte DBCommand objekt. Podívejte se na konstruktor, který používáte:

Dim cmdx As New MySqlCommand(cmdTextx, connx)

DBCommand objektu je předán odkaz na připojení. I když výslovně zlikvidujete připojení, cmdx stále obsahuje odkaz na něj a to nebyl zlikvidován. Using bloky zjednodušují kontrolu, zda jsou věci zlikvidovány:

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

Chcete-li omezit odsazení, můžete položky „skládat“ do jednoho Using blokovat:

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

Všimněte si čárky na konci prvního řádku.

Překvapilo by mě, kdyby to nebylo příčinou vašeho úniku (samozřejmě by bylo nutné změnit veškerý kód).




  1. pgDash Alternatives - PostgreSQL Database Monitoring s ClusterControl

  2. Predikátový řád je důležitý v rozšířených událostech

  3. Výkon MySQL – 5 parametrů z konfiguračního souboru

  4. Jak vytvořit prázdný formulář v Accessu 2016