Mysql
 sql >> база данни >  >> RDS >> Mysql

Брой пула за MySQL връзки

Има няколко неща във вашия код.

  • Първо включете Option Strict . Функцията е декларирана да връща низ, но вие се опитвате да върнете Object с Return result
  • Всичко който реализира Dispose методът трябва да се използва в Using блок. Това ви позволява да декларирате и инициализирате обект, да го използвате и да го изхвърлите в края.
  • Parameters.Add е по-добре от AddWithValue . По-късното принуждава доставчика на DB да отгатне типа данни въз основа на данните.
  • В зависимост от натоварването и дали този метод се използва много, можете да заредите данните в DataTable и правете справки за това, вместо да правите запитвания към БД отново и отново.

Основният проблем е (вероятно), че не изхвърляте DBCommand обект. Вижте конструктора, който използвате:

Dim cmdx As New MySqlCommand(cmdTextx, connx)

DBCommand на обекта се предава препратка към връзката. Въпреки че изрично изхвърляте връзката, cmdx все още има препратка към него ито не беше изхвърлен. Using блокове улесняват да сте сигурни, че нещата са изхвърлени:

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

За да намалите вдлъбнатината, можете да „подредите“ елементи в едно Using блок:

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

Обърнете внимание на запетаята в края на първия ред.

Ще се изненадам, ако това не е причината за изтичането ви (разбира се, че целият код ще трябва да бъде променен).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL с меко изтриване, ограничения за уникален ключ и външни ключове

  2. как да работя с рекурсивна заявка в MySql?

  3. php стартирайте веднъж и вмъкнете два пъти в базата данни на mysql

  4. Синтаксис на MySQL CREATE FUNCTION

  5. Вземете идентификатора на вмъкнатия ред с помощта на C#