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, tüm açık bağlantıları kapatmak için tercih edilen yöntemdir.
public:
override void Close();
public override void Close();
override this.Close : unit -> unit
Public Overrides Sub Close ()
Ö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.
using Microsoft.Data.SqlClient;
class Program1
{
static void Main()
{
string s = GetConnectionString();
OpenSqlConnection(s);
Console.ReadLine();
}
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);
}
}
static private string GetConnectionString()
{
// To avoid storing the connection string in your code,
// you can retrieve it from a configuration file, using the
// System.Configuration.ConfigurationSettings.AppSettings property
return "Data Source=(local);Initial Catalog=AdventureWorks;"
+ "Integrated Security=SSPI;";
}
}
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.
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. Hiçbir ö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 ayarlanırsatrue, temel alınan bağlantı yeniden bağlantı havuzuna döndürülür. Öte yandan, veya noolarak ayarlanırsa Poolingfalse, sunucuyla temel alınan bağlantı kapatılır.
Not
Bağlantı havuzuna döndürülürken bağlantı kapatılmadığından veya bağlantı havuzundan bir bağlantı getirildiğinde 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 nesne Finalize çağırmayın CloseDispose veya çağırmayın. 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.