Bu soru için çelişen sonuçlar bulmaya devam ediyorum. en bir SQL sorgusu çalışan bu C# kodu bakalım:SQL Server bağlantısını kullanarak anahtar sözcüğünü kapatmam gerekiyor mu?
using (SqlConnection cn = new SqlConnection(strConnectString))
{
cn.Open();
using (SqlCommand cmd = new SqlCommand(strSQL, cn))
{
cmd.ExecuteNonQuery();
}
//Do I need to call?
cn.Close();
}
bu son cn.Close()
çağırmak gerekir mi? Ben soruyorum nedeni yoğun trafikte bir web uygulamasında bir havuzda bağlantıları bitti.
Teşekkürler. Soru şu: - Bağlantı derhal kapatıldı mı, yoksa çöp toplayıcısı ona ulaştığında kapanıyor mu? Çünkü bu benim durumumda bir fark yaratıyor. – c00000fd
"Aynı bağlantı dizesini kullandığınızdan emin olun" - Bununla ne demek istiyorsun? SqlConnection cn'yi statik değişken olarak tanımlayın. – c00000fd
'Bu deterministik olmayan finalizasyon' = ** yanlış **. Bağlantı, * using 'ifadesinin kapsamı dışına çıktıktan hemen sonra * atılır *. Bunun çöp toplama ile ilgisi yok. Aslında, deterministik olmayan GC, IDisposable arayüzü ve Dispose Pattern'in neden .NET'e sunulduğunun tam olarak nedenidir. –