sql >> Databáze >  >> RDS >> Sqlserver

Jak udržet jednu instanci připojení SQL Server otevřenou pro více požadavků v C#?

SqlConnection ADO.NET implementuje fond připojení. To znamená, že když zavřete nebo zlikvidujete instanci SqlConnection , základní připojení se jednoduše vrátí do fondu. Když další instance SqlConnection Pokud se otevře a ve fondu připojení je k dispozici připojení, toto připojení bude použito.
Stránka Microsoft docs na SQL Server Connection Pooling jasně uvádí:

Pozor
Důrazně doporučujeme, abyste po ukončení používání připojení vždy ukončili, aby se připojení vrátilo do fondu. To lze provést pomocí metod Close nebo Dispose objektu Connection nebo otevřením všech připojení uvnitř příkazu using v jazyce C# nebo příkazu Using v jazyce Visual Basic. Připojení, která nejsou explicitně uzavřena, nemusí být přidána nebo vrácena do fondu. Další informace naleznete v tématu Použití příkazu nebo Postup:Likvidace systémových prostředků pro Visual Basic.

To znamená, že je to osvědčený způsob použití SqlConnection je toto:

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

BTW, SqlCommand , SqlDataReader a SqlDataAdapter také implementuje IDisposable rozhraní, takže je také třeba použít v kontextu using prohlášení:

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. jak připojit sql server pomocí ovladače JTDS v systému Android

  2. Kde získám zdroj libpq?

  3. SQL Server 2016:Vylepšení OLTP v paměti

  4. MariaDB představuje funkci JSON_TABLE().