SqlConnection.Close Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Veritabanı bağlantısını kapatır. Bu, açık bağlantıları kapatmak için tercih edilen yöntemdir.
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 ()
Uygulamalar
Özel durumlar
Bağlantı açılırken oluşan bağlantı düzeyi hatası.
Örnekler
Aşağıdaki örnek bir SqlConnectionoluşturur, bunu açar ve özelliklerinden bazılarını görüntüler. Bağlantı bloğun sonunda using
otomatik olarak kapatılır.
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
Açıklamalar
Close yöntemi bekleyen tüm işlemleri geri alır. Daha sonra bağlantı havuzu bağlantısını serbest bırakır veya bağlantı havuzu devre dışı bırakılırsa bağlantıyı kapatır.
Not
Bekleyen işlemler Transact-SQL kullanılarak başlatılır veya BeginTransaction bağlantı havuzu etkinleştirildiğinde bağlantı sıfırlandığında otomatik olarak geri alınır. Bağlantı havuzu kapalıysa, işlem çağrıldıktan sonra SqlConnection.Close
geri alınır. üzerinden System.Transactions başlatılan işlemler altyapı üzerinden System.Transactions
denetlendiğinden etkilenmez SqlConnection.Close
.
Bir uygulama birden fazla kez çağrı Close yapabilir. Özel durum oluşturulmaz.
SqlConnection kapsamı dışına çıkarsa kapatılamaz. Bu nedenle, veya Dispose
öğesini çağırarak Close
bağlantıyı açıkça kapatmanız gerekir.
Close
ve Dispose
işlevsel olarak eşdeğerdir. Bağlantı havuzu değeri Pooling
veya yes
olarak ayarlandıysatrue
, temel alınan bağlantı bağlantı havuzuna geri döndürülür. Öte yandan, veya no
olarak ayarlanırsa Pooling
false
, sunucuyla temel alınan bağlantı kapatılır.
Not
Bağlantı havuzundan bir bağlantı getirildiğinde veya bağlantı havuzuna döndürülürken bağlantı gerçekten kapatılmadığından, sunucuda oturum açma ve oturum kapatma olayları tetiklenmez. Daha fazla bilgi için bkz. SQL Server Bağlantı Havuzu (ADO.NET).
Dikkat
Sınıfınızın yönteminde Connection, DataReader veya başka bir yönetilen nesneyi Finalize
çağırmayın veya çağırmayın.Close
Dispose
Sonlandırıcıda yalnızca sınıfınızın doğrudan sahip olduğu yönetilmeyen kaynakları serbest bırakmanız gerekir. Sınıfınız yönetilmeyen kaynaklara sahip değilse, sınıf tanımınıza bir Finalize
yöntem eklemeyin. Daha fazla bilgi için bkz . Çöp Toplama.