SqlConnection
ADO.NET sedang mengimplementasikan kumpulan koneksi. Ini berarti bahwa ketika Anda menutup atau membuang instance SqlConnection
, koneksi yang mendasarinya hanya kembali ke kumpulan. Ketika contoh lain dari SqlConnection
dibuka, dan koneksi tersedia di kumpulan koneksi, koneksi itu akan digunakan.
Bahkan, halaman dokumen Microsoft di SQL Server Connection Pooling dengan jelas menyatakan:
Perhatian
Kami sangat menyarankan Anda untuk selalu menutup koneksi saat Anda selesai menggunakannya agar koneksi kembali ke pool. Anda dapat melakukan ini menggunakan metode Tutup atau Buang dari objek Connection, atau dengan membuka semua koneksi di dalam pernyataan using di C#, atau pernyataan Using di Visual Basic. Koneksi yang tidak ditutup secara eksplisit mungkin tidak ditambahkan atau dikembalikan ke kumpulan. Untuk informasi selengkapnya, lihat menggunakan Pernyataan atau Cara:Membuang Sumber Daya Sistem untuk Visual Basic.
Ini berarti bahwa cara praktik terbaik menggunakan SqlConnection
apakah ini:
using(var con = new SqlConnection(connectionString))
{
// your sql stuff goes here...
}
BTW, SqlCommand
, SqlDataReader
dan SqlDataAdapter
juga mengimplementasikan IDisposable
antarmuka, sehingga mereka juga perlu digunakan dalam konteks using
pernyataan:
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))
{
}
}
}