SqlConnection.Close Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menutup koneksi ke database. Ini adalah metode yang disukai untuk menutup koneksi terbuka apa pun.
public:
override void Close();
public:
virtual void Close();
public override void Close ();
public void Close ();
override this.Close : unit -> unit
abstract member Close : unit -> unit
override this.Close : unit -> unit
Public Overrides Sub Close ()
Public Sub Close ()
Penerapan
Pengecualian
Kesalahan tingkat koneksi yang terjadi saat membuka koneksi.
Contoh
Contoh berikut membuat SqlConnection, membukanya, menampilkan beberapa propertinya. Koneksi secara otomatis ditutup di akhir using
blok.
private static void OpenSqlConnection(string connectionString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
Console.WriteLine("ServerVersion: {0}", connection.ServerVersion);
Console.WriteLine("State: {0}", connection.State);
}
}
Private Sub OpenSqlConnection(ByVal connectionString As String)
Using connection As New SqlConnection(connectionString)
connection.Open()
Console.WriteLine("ServerVersion: {0}", connection.ServerVersion)
Console.WriteLine("State: {0}", connection.State)
End Using
End Sub
Keterangan
Metode ini Close mengembalikan transaksi yang tertunda. Kemudian melepaskan koneksi ke kumpulan koneksi, atau menutup koneksi jika pengumpulan koneksi dinonaktifkan.
Catatan
Transaksi yang tertunda mulai menggunakan Transact-SQL atau BeginTransaction secara otomatis digulung balik saat koneksi diatur ulang jika pengumpulan koneksi diaktifkan. Jika pengumpulan koneksi nonaktif, transaksi digulung balik setelah SqlConnection.Close
dipanggil. Transaksi yang dimulai melalui System.Transactions dikendalikan melalui System.Transactions
infrastruktur, dan tidak terpengaruh oleh SqlConnection.Close
.
Aplikasi dapat memanggil Close lebih dari satu kali. Tidak ada pengecualian yang dihasilkan.
SqlConnection Jika keluar dari cakupan, itu tidak akan ditutup. Oleh karena itu, Anda harus secara eksplisit menutup koneksi dengan memanggil Close
atau Dispose
.
Close
dan Dispose
setara secara fungsional. Jika nilai Pooling
pengumpulan koneksi diatur ke true
atau yes
, koneksi yang mendasar dikembalikan ke kumpulan koneksi. Di sisi lain, jika Pooling
diatur ke false
atau no
, koneksi yang mendasar ke server ditutup.
Catatan
Peristiwa masuk dan keluar tidak akan dinaikkan di server ketika koneksi diambil dari atau dikembalikan ke kumpulan koneksi, karena koneksi tidak benar-benar ditutup ketika dikembalikan ke kumpulan koneksi. Untuk informasi selengkapnya, lihat Kumpulan Koneksi SQL Server (ADO.NET).
Perhatian
Jangan memanggil Close
atau Dispose
pada Koneksi, DataReader, atau objek terkelola lainnya dalam Finalize
metode kelas Anda. Dalam finalizer, Anda hanya boleh merilis sumber daya yang tidak dikelola yang dimiliki kelas Anda secara langsung. Jika kelas Anda tidak memiliki sumber daya yang tidak dikelola, jangan sertakan metode Finalize
dalam definisi kelas Anda. Untuk informasi lebih lanjut, lihat Pengumpulan Sampah.