Aracılığıyla paylaş


SqlConnection.Close Yöntem

Tanım

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 yesolarak ayarlandıysatrue, temel alınan bağlantı bağlantı havuzuna geri döndürülür. Öte yandan, veya noolarak ayarlanırsa Poolingfalse, 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.CloseDispose 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.

Şunlara uygulanır

Ayrıca bkz.