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

Как да запазите един екземпляр на връзка на SQL Server отворен за множество заявки в C#?

SqlConnection на ADO.NET внедрява пул за връзки. Това означава, че когато затворите или изхвърлите екземпляр на SqlConnection , основната връзка просто се връща към пула. Когато друг екземпляр на SqlConnection е отворен и връзка е налична в пула за връзки, тази връзка ще бъде използвана.
Всъщност, страницата на Microsoft с документи на SQL Server Connection Pooling ясно казва:

Внимание
Настоятелно препоръчваме винаги да затваряте връзката, когато приключите с използването й, така че връзката да бъде върната в пула. Можете да направите това, като използвате методите Close или Dispose на обекта Connection, или като отворите всички връзки в оператор using в C# или оператор Using във Visual Basic. Връзките, които не са изрично затворени, може да не бъдат добавени или върнати в пула. За повече информация вижте използването на изявление или Как да:изхвърляне на системен ресурс за Visual Basic.

Това означава, че най-добрият начин за използване на SqlConnection това е:

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

BTW, SqlCommand , SqlDataReader и SqlDataAdapter също така имплементира IDisposable интерфейс, така че те също трябва да се използват в контекста на using изявление:

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. TDS сървър - Използвайте Transact-SQL (T-SQL) изявления за работа с данни на Salesforce в SQL Server

  2. Удостоверяване на SQL Server срещу удостоверяване на Windows:Кое да се използва и кога

  3. Как да използвате Sum, Avg и Count в Select Statement - SQL Server / TSQL урок, част 128

  4. Сравнете DATETIME и DATE, пренебрегвайки частта от времето

  5. Водещи функции, които да търсите в инструмента за наблюдение на SQL Server