Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Số lượng nhóm kết nối MySQL

Có một số thứ trong mã của bạn.

  • Đầu tiên, hãy bật Option Strict . Hàm được khai báo để trả về một chuỗi, nhưng bạn đang cố trả về Object với Return result
  • Mọi thứ triển khai Dispose phương thức phải được sử dụng bên trong Using khối. Điều này cho phép bạn khai báo và khởi tạo một đối tượng, sử dụng nó và loại bỏ nó khi kết thúc.
  • Parameters.Add tốt hơn AddWithValue . Càng về sau, Nhà cung cấp DB phải đoán kiểu dữ liệu dựa trên dữ liệu.
  • Tùy thuộc vào tải và liệu phương pháp đó có được sử dụng nhiều hay không, bạn có thể tải dữ liệu vào DataTable và thực hiện tra cứu về điều đó thay vì truy vấn lặp đi lặp lại DB.

Vấn đề cốt lõi (có thể) là bạn không hủy bỏ DBCommand vật. Nhìn vào hàm tạo mà bạn sử dụng:

Dim cmdx As New MySqlCommand(cmdTextx, connx)

DBCommand đối tượng được chuyển một tham chiếu đến kết nối. Ngay cả khi bạn loại bỏ kết nối một cách rõ ràng, cmdx vẫn có tham chiếu đến nó và đã không được xử lý. Using khối giúp đơn giản hóa việc đảm bảo mọi thứ được xử lý:

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

Để giảm thụt lề, bạn có thể "xếp chồng" các mục thành một Using khối:

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

Lưu ý dấu phẩy ở cuối dòng đầu tiên.

Tôi sẽ rất ngạc nhiên nếu đây không phải là nguyên nhân khiến bạn bị rò rỉ (tất nhiên là tất cả mã sẽ cần được thay đổi).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhập dữ liệu CSV bằng PHP / MySQL

  2. Tại sao CONCAT () không mặc định thành bộ ký tự mặc định trong MySQL?

  3. Left Join vượt trội hơn Inner Join?

  4. Thứ tự MySQL theo trường trong Eloquent

  5. Thực thi một tập lệnh php trong javascript?