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, herhangi bir açık bağlantıyı 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, 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
yöntemi, Close bekleyen tüm işlemleri geri alır. Ardından 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.
Note
Transact-SQL veya BeginTransaction kullanılarak başlatılan bekleyen işlemler, 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 Closeçağırarak Dispose 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 trueolarak ayarlanırsayes, temel alınan bağlantı bağlantı havuzuna geri döndürülür. Öte yandan veya Poolingolarak ayarlanırsa falseno, sunucuya yönelik temel alınan bağlantı kapatılır.
Note
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 SQL Server Bağlantı Havuzu (ADO.NET)'ne bakın.
Caution
Sınıfınızın yönteminde Bir Bağlantı, DataReader veya başka bir yönetilen nesne Close çağırmayın.DisposeFinalize 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.