Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak zachować jedno wystąpienie połączenia SQL Server otwarte dla wielu żądań w C#?

SqlConnection ADO.NET implementuje pulę połączeń. Oznacza to, że gdy zamykasz lub usuwasz instancję SqlConnection , podstawowe połączenie po prostu wraca do puli. Kiedy inna instancja SqlConnection jest otwarte, a połączenie jest dostępne w puli połączeń, to połączenie będzie używane.
W rzeczywistości strona Microsoft Docs na temat puli połączeń programu SQL Server wyraźnie stwierdza:

Uwaga
Zdecydowanie zalecamy, aby zawsze zamykać połączenie po zakończeniu korzystania z niego, aby połączenie zostało przywrócone do puli. Można to zrobić za pomocą metod Close lub Dispose obiektu Connection lub otwierając wszystkie połączenia wewnątrz instrukcji using w C# lub instrukcji Using w Visual Basic. Połączenia, które nie są jawnie zamknięte, mogą nie zostać dodane ani zwrócone do puli. Aby uzyskać więcej informacji, zobacz Korzystanie z instrukcji lub How to:Dispose of a Resource Resource for Visual Basic.

Oznacza to, że najlepszą praktyką jest używanie SqlConnection jest to:

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

BTW, SqlCommand , SqlDataReader i SqlDataAdapter implementuje również IDisposable interfejs, więc one również muszą być używane w kontekście using oświadczenie:

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. Metody eksportu i importu tabel bazy danych SQL Server

  2. Oblicz skrót MD5 ciągu UTF8

  3. Jak formatować wartości ujemne za pomocą nawiasów w SQL Server (T-SQL)

  4. Jak zautomatyzować zadanie generowania skryptów w programie SQL Server Management Studio 2008?

  5. Funkcja formatu daty SQL Server