SqlConnection Sınıf
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.
SQL Server veritabanına bağlantıyı temsil eder. Bu sınıf devralınamaz.
public ref class SqlConnection sealed : System::Data::Common::DbConnection, ICloneable
public sealed class SqlConnection : System.Data.Common.DbConnection, ICloneable
type SqlConnection = class
inherit DbConnection
interface ICloneable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Implements ICloneable
- Devralma
-
SqlConnection
- Uygulamalar
Örnekler
Aşağıdaki örnek bir SqlCommand ve SqlConnectionoluşturur. SqlConnection açılır ve için Connectionolarak SqlCommand ayarlanır. Örnek daha sonra öğesini çağırır ExecuteNonQuery. Bunu başarmak için ExecuteNonQuery bir SqlConnection ve Transact-SQL INSERT deyimi olan bir sorgu dizesi geçirilir. Kod, using bloğundan çıktığında bağlantı otomatik olarak kapatılır.
using System;
using System.Data;
using Microsoft.Data.SqlClient;
namespace SqlCommand_ExecuteNonQuery
{
class Program
{
static void Main()
{
string str = "Data Source=(local);Initial Catalog=Northwind;"
+ "Integrated Security=SSPI";
string qs = "SELECT OrderID, CustomerID FROM dbo.Orders;";
CreateCommand(qs, str);
}
private static void CreateCommand(string queryString,
string connectionString)
{
using (SqlConnection connection = new SqlConnection(
connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
command.Connection.Open();
command.ExecuteNonQuery();
}
}
}
}
Açıklamalar
SqlConnection nesnesi, SQL Server veri kaynağı için benzersiz bir oturumu temsil eder. İstemci/sunucu veritabanı sistemi ile sunucuya yapılan ağ bağlantısına eşdeğerdir. SqlConnection, Microsoft SQL Server veritabanı bağlanırken performansı artırmak için SqlDataAdapter ve SqlCommand ile birlikte kullanılır. Tüm üçüncü taraf SQL Server ürünleri ve OLE DB tarafından desteklenen diğer veri kaynakları için OleDbConnection kullanın.
örneğini SqlConnectionoluşturduğunuzda, tüm özellikler ilk değerlerine ayarlanır. Bu değerlerin listesi için oluşturucuya SqlConnection bakın.
bağlantı dizesi anahtar sözcüklerin listesi için bkz. ConnectionString.
SqlConnection kapsamı dışına çıkarsa kapatılamaz. Bu nedenle, veya Disposeç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ı bağlantı havuzuna geri döndürülür. Öte yandan veya noolarak ayarlanırsa Poolingfalse, sunucuya yönelik temel alınan bağlantı aslında kapatılır.
Uyarı
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.
Bağlantıların her zaman kapalı olduğundan emin olmak için aşağıdaki kod parçasında gösterildiği gibi bağlantıyı bir using bloğun içinde açın. Bunun yapılması, kod bloktan çıktığında bağlantının otomatik olarak kapatılmasını sağlar.
Using connection As New SqlConnection(connectionString)
connection.Open()
' Do work here; connection closed on following line.
End Using
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
// Do work here; connection closed on following line.
}
Uyarı
Yüksek performanslı uygulamalar dağıtmak için bağlantı havuzu kullanmanız gerekir. SQL Server için .NET Framework Veri Sağlayıcısı kullandığınızda, bazı ayarları değiştirebilmenize rağmen sağlayıcı bunu otomatik olarak yönettiğinden bağlantı havuzunu etkinleştirmeniz gerekmez. Daha fazla bilgi için SQL Server Bağlantı Havuzu (ADO.NET)'ne bakın.
bir SqlException yürüten SqlCommandSqlConnection yöntemi tarafından oluşturulursa, önem düzeyi 19 veya daha az olduğunda açık kalır. Önem düzeyi 20 veya daha yüksek olduğunda, sunucu normalde kapatır SqlConnection. Ancak kullanıcı bağlantıyı yeniden açabilir ve devam edebilir.
Nesnesinin bir örneğini SqlConnection oluşturan bir uygulama, bildirim temelli veya kesinlik temelli güvenlik taleplerini ayarlayarak tüm doğrudan ve dolaylı çağıranların kodda yeterli izne sahip olmasını gerektirebilir. SqlConnection nesnesini kullanarak güvenlik talepleri oluşturur SqlClientPermission . Kullanıcılar, nesnesini kullanarak SqlClientPermissionAttribute kodlarının yeterli izinlere sahip olduğunu doğrulayabilir. Kullanıcılar ve yöneticiler makine, kullanıcı ve kuruluş düzeylerinde güvenlik ilkesini değiştirmek için Caspol.exe (Kod Erişimi Güvenlik İlkesi Aracı) da kullanabilir. Daha fazla bilgi için bkz. .NET'te güvenlik. Güvenlik taleplerinin nasıl kullanılacağını gösteren bir örnek için bkz. Kod Erişim Güvenliği ve ADO.NET.
Sunucudan gelen uyarı ve bilgilendirme iletilerini işleme hakkında daha fazla bilgi için bkz. Bağlantı Olayları. SQL Server altyapısı hataları ve hata iletileri hakkında daha fazla bilgi için bkz. Database Engine Olaylar ve Hatalar.
Dikkat
Paylaşılan bellek yerine TCP'ye zorlayabilirsiniz. Bunu yapmak için tcp: ön ekini bağlantı dizesi sunucu adına ekleyebilir veya localhost kullanabilirsiniz.
Oluşturucular
| Name | Description |
|---|---|
| SqlConnection() |
SqlConnection sınıfının yeni bir örneğini başlatır. |
| SqlConnection(String, SqlCredential) |
Kullanmayan SqlConnection bir bağlantı dizesi |
| SqlConnection(String) |
Bağlantı dizesini SqlConnection içeren bir dize verildiğinde sınıfının yeni bir örneğini başlatır. |
Özellikler
| Name | Description |
|---|---|
| AccessToken |
Bağlantı için erişim belirtecini alır veya ayarlar. |
| AccessTokenCallback |
Bağlantı için erişim belirteci geri çağırmasını alır veya ayarlar. |
| CanCreateBatch |
Bu SqlConnection örneğin sınıfı destekleyip desteklemediğini DbBatch gösteren bir değer alır. |
| ClientConnectionId |
Girişimin başarılı veya başarısız olmasına bakılmaksızın en son bağlantı girişiminin bağlantı kimliği. |
| ColumnEncryptionKeyCacheTtl |
Always Encrypted özelliği için sütun şifreleme anahtarı önbelleğindeki sütun şifreleme anahtarı girişleri için yaşam süresini alır veya ayarlar. Varsayılan değer 2 saattir. 0, önbelleğe alma olmadığı anlamına gelir. |
| ColumnEncryptionQueryMetadataCacheEnabled |
Always Encrypted etkin veritabanlarında çalıştırılan parametreli sorgular için sorgu meta verileri önbelleğe almanın etkinleştirilip etkinleştirilmediğini (true) veya değil (false) belirten bir değer alır veya ayarlar. Varsayılan değer doğru'dur. |
| ColumnEncryptionTrustedMasterKeyPaths |
Veritabanı sunucusu için güvenilen anahtar yollarının listesini ayarlamanıza olanak tanır. Bir uygulama sorgusu işlenirken sürücü listede olmayan bir anahtar yolu alırsa, sorgu başarısız olur. Bu özellik, güvenliği aşılmış bir SQL Server sahte anahtar yolları sağlayarak anahtar deposu kimlik bilgilerinin sızmasına neden olabilecek güvenlik saldırılarına karşı ek koruma sağlar. |
| CommandTimeout |
Komut yürütme girişimini sonlandırmadan ve hata oluşturmadan önce varsayılan bekleme süresini (saniye cinsinden) alır. Varsayılan değer 30 saniyedir. |
| ConnectionString |
SQL Server veritabanını açmak için kullanılan dizeyi alır veya ayarlar. |
| ConnectionTimeout |
Denemeyi sonlandırmadan ve hata oluşturmadan önce bağlantı kurmaya çalışırken bekleme süresini alır. |
| Credential |
Bu bağlantının SqlCredential nesnesini alır veya ayarlar. |
| Database |
Bağlantı açıldıktan sonra kullanılacak geçerli veritabanının veya veritabanının adını alır. |
| DataSource |
Bağlanacak SQL Server örneğinin adını alır. |
| FireInfoMessageEventOnUserErrors |
özelliğini alır veya ayarlar FireInfoMessageEventOnUserErrors . |
| PacketSize |
SQL Server örneğiyle iletişim kurmak için kullanılan ağ paketlerinin boyutunu (bayt cinsinden) alır. |
| RetryLogicProvider |
Bu komuta bağlı nesneyi belirten SqlRetryLogicBaseProvider bir değer alır veya ayarlar. |
| ServerProcessId |
Etkin bağlantının sunucu işlem kimliğini (SPID) alır. |
| ServerVersion |
İstemcinin bağlı olduğu SQL Server örneğinin sürümünü içeren bir dize alır. |
| SspiContextProvider |
SSPI bağlamını SspiContextProvider özelleştirmek için örneği alır veya ayarlar. Ayarlanmadıysa, platform için varsayılan değer kullanılır. |
| State |
Bağlantıda SqlConnection gerçekleştirilen en son ağ işlemi sırasında durumunu gösterir. |
| StatisticsEnabled |
olarak |
| WorkstationId |
Veritabanı istemcisini tanımlayan bir dize alır. |
Yöntemler
| Name | Description |
|---|---|
| BeginTransaction() |
Bir veritabanı işlemi başlatır. |
| BeginTransaction(IsolationLevel, String) |
Belirtilen yalıtım düzeyine ve işlem adına sahip bir veritabanı işlemi başlatır. |
| BeginTransaction(IsolationLevel) |
Belirtilen yalıtım düzeyine sahip bir veritabanı işlemi başlatır. |
| BeginTransaction(String) |
Belirtilen işlem adıyla bir veritabanı işlemi başlatır. |
| ChangeDatabase(String) |
Açık SqlConnectionbir için geçerli veritabanını değiştirir. |
| ChangePassword(String, SqlCredential, SecureString) |
SqlCredential nesnesinde belirtilen kullanıcının SQL Server parolasını değiştirir. |
| ChangePassword(String, String) |
bağlantı dizesi belirtilen kullanıcının SQL Server parolasını sağlanan yeni parolayla değiştirir. |
| ClearAllPools() |
Bağlantı havuzunu boşaltın. |
| ClearPool(SqlConnection) |
Belirtilen bağlantıyla ilişkili bağlantı havuzunu boşaltın. |
| Close() |
Veritabanı bağlantısını kapatır. Bu, herhangi bir açık bağlantıyı kapatmak için tercih edilen yöntemdir. |
| CreateCommand() |
ile SqlConnectionilişkilendirilmiş bir SqlCommand nesne oluşturur ve döndürür. |
| EnlistDistributedTransaction(ITransaction) |
Belirtilen işlemde dağıtılmış işlem olarak listeler. |
| EnlistTransaction(Transaction) |
Belirtilen işlemde dağıtılmış işlem olarak listeler. |
| GetSchema() |
Bu SqlConnectionveri kaynağı için şema bilgilerini döndürür. Düzen hakkında daha fazla bilgi için bkz. SQL Server Şema Koleksiyonları. |
| GetSchema(String, String[]) |
Şema adı için belirtilen dizeyi ve kısıtlama değerleri için belirtilen dize dizisini kullanarak bunun SqlConnection veri kaynağı için şema bilgilerini döndürür. |
| GetSchema(String) |
Şema adı için belirtilen dizeyi kullanarak bunun SqlConnection veri kaynağı için şema bilgilerini döndürür. |
| Open() |
tarafından ConnectionStringbelirtilen özellik ayarlarıyla bir veritabanı bağlantısı açar. |
| Open(SqlConnectionOverrides) |
tarafından ConnectionStringbelirtilen özellik ayarlarıyla bir veritabanı bağlantısı açar. |
| OpenAsync(CancellationToken) |
tarafından belirtilen ConnectionStringözellik ayarlarıyla bir veritabanı bağlantısı açan zaman uyumsuz sürümüOpen(). İptal belirteci, bağlantı zaman aşımı tamamlanmadan önce işlemin terk edilmesi isteğinde bulunmak için kullanılabilir. Özel durumlar döndürülen Görev aracılığıyla yayılır. Bağlantı zaman aşımı süresi başarıyla bağlanmadan sona ererse, döndürülen Görev bir Özel Durum ile hatalı olarak işaretlenir. Uygulama, hem havuza alınan hem de havuza alınmayan bağlantılar için çağıran iş parçacığını engellemeden bir Görev döndürür. |
| OpenAsync(SqlConnectionOverrides, CancellationToken) |
tarafından belirtilen ConnectionStringözellik ayarlarıyla bir veritabanı bağlantısı açan zaman uyumsuz sürümüOpen(). İptal belirteci, bağlantı zaman aşımı tamamlanmadan önce işlemin terk edilmesi isteğinde bulunmak için kullanılabilir. Özel durumlar döndürülen Görev aracılığıyla yayılır. Bağlantı zaman aşımı süresi başarıyla bağlanmadan sona ererse, döndürülen Görev bir Özel Durum ile hatalı olarak işaretlenir. Uygulama, hem havuza alınan hem de havuza alınmayan bağlantılar için çağıran iş parçacığını engellemeden bir Görev döndürür. |
| RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>) |
Sütun şifreleme anahtar deposu sağlayıcılarını kaydeder. Bu işlev bir uygulamada yalnızca bir kez çağrılmalıdır. Bu, uygulamanın ayarlandıktan sonra özel sağlayıcı listesini değiştirememesi için sözlüğün sığ bir şekilde kopyalanmasını yapar. Windows Sertifika Deposu, CNG Deposu ve CSP için kullanılabilen yerleşik sütun ana anahtar deposu sağlayıcıları önceden kaydedilir. |
| RegisterColumnEncryptionKeyStoreProvidersOnConnection(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>) |
Şifreleme anahtarı deposu sağlayıcılarını örnekte kaydeder SqlConnection . Bu işlev çağrıldıysa, statik RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>) yöntemler kullanılarak kaydedilen tüm sağlayıcılar yoksayılır. Bu işlev birden çok kez çağrılabilir. Bu, uygulamanın ayarlandıktan sonra özel sağlayıcı listesini değiştirememesi için sözlüğün sığ bir şekilde kopyalanmasını yapar. |
| ResetStatistics() |
İstatistik toplama etkinse, tüm değerler sıfıra sıfırlanır. |
| RetrieveInternalInfo() |
Yöntemin çağrıldığı noktada iç özelliklerden oluşan bir ad değer çifti koleksiyonu döndürür. |
| RetrieveStatistics() |
Yöntemin çağrıldığı noktada istatistiklerden oluşan bir ad değer çifti koleksiyonu döndürür. |
Ekinlikler
| Name | Description |
|---|---|
| InfoMessage |
SQL Server bir uyarı veya bilgilendirme iletisi döndürdüğünde gerçekleşir. |
Belirtik Arabirim Kullanımları
| Name | Description |
|---|---|
| ICloneable.Clone() |
Geçerli örneğin kopyası olan yeni bir nesne oluşturur. |