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

Làm cách nào để giữ một phiên bản kết nối SQL Server mở cho nhiều yêu cầu trong C #?

SqlConnection của ADO.NET đang triển khai một nhóm kết nối. Điều này có nghĩa là khi bạn đóng hoặc hủy một phiên bản của SqlConnection , kết nối cơ bản chỉ đơn giản là quay trở lại nhóm. Khi một phiên bản khác của SqlConnection được mở và một kết nối khả dụng trong nhóm kết nối, kết nối đó sẽ được sử dụng.
Trên thực tế, trang tài liệu của Microsoft trên SQL Server Connection Pooling nêu rõ:

Thận trọng
Chúng tôi đặc biệt khuyên bạn nên luôn đóng kết nối khi bạn sử dụng xong để kết nối sẽ quay trở lại nhóm. Bạn có thể thực hiện việc này bằng cách sử dụng phương thức Đóng hoặc Loại bỏ đối tượng Kết nối hoặc bằng cách mở tất cả các kết nối bên trong câu lệnh using trong C # hoặc câu lệnh using trong Visual Basic. Các kết nối không được đóng một cách rõ ràng có thể không được thêm vào hoặc trở lại nhóm. Để biết thêm thông tin, hãy xem cách sử dụng Tuyên bố hoặc Cách:Loại bỏ Tài nguyên Hệ thống cho Visual Basic.

Điều này có nghĩa là cách thực hành tốt nhất để sử dụng SqlConnection đây có phải là:

using(var con = new SqlConnection(connectionString))
{
    // your sql stuff goes here...
}

BTW, SqlCommand , SqlDataReaderSqlDataAdapter cũng triển khai IDisposable giao diện, vì vậy chúng cũng cần được sử dụng trong ngữ cảnh của using tuyên bố:

using(var con = new SqlConnection(connectionString))
{
    using(var cmd = new SqlCommand(sql, con))
    {
        // prepare command here - parameters and stuff like that

        // either
        using(var reader = cmd.ExecuteReader())
        {

        }

        // or 
        using(var adapter = new SqlDataAdapter(cmd))
        {

        }

    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cột được tính toán trong SQL Server là gì?

  2. Làm cách nào để bạn đếm số lần xuất hiện của một chuỗi con nhất định trong một varchar SQL?

  3. Tính số bản ghi cho mỗi ngày giữa 2 ngày

  4. Cửa hàng truy vấn SQL Server

  5. Khôi phục cơ sở dữ liệu SQL một cách dễ dàng - Hướng dẫn từng bước