Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
ADO.NET, .NET'e entegre edilmiş veri erişim modelidir. Microsoft. Data.SqlClient, bu modeli SQL Server uyumlu veritabanları için uygular ve SQL Server'a özgü yetenekler ekler.
Microsoft. Data.SqlClient açılış sayfası, sürücü özellik haritasını ve üretim temelini sağlar. Bu makale, sürücünün ADO.NET içindeki yerini açıklar.
ADO.NET soyutlamaları ve SqlClient türleri
ADO.NET, System.Data.Common ad alanında sağlayıcıdan bağımsız soyutlamaları tanımlar. Microsoft. Data.SqlClient somut uygulamalar sağlar.
| ADO.NET soyutlama | SqlClient tipi | Purpose |
|---|---|---|
| DbConnection | SqlConnection | Bir veritabanına mantıklı bir bağlantı açar. |
| DbCommand | SqlCommand | SQL metni veya bir kayıtlı prosedürü çalıştırır. |
| DbParameter | SqlParameter | Komut metninden ayrı olarak yazılmış bir değer gönderir. |
| DbDataReader | SqlDataReader | Sonuç satırlarını sunucudan akış halinde iletir. |
| DbTransaction | SqlTransaction | Komutları tek bir atomik işlemde gruplar. |
| DbDataAdapter | SqlDataAdapter | Bağlantısı kesilmiş DataSet ve DataTable nesneleri doldurur ve günceller. |
| DbBatch | SqlBatch | Desteklenen hedef çerçevelerde birden fazla komutu tek bir toplu olarak gönderir. |
Bir kütüphane birden fazla veritabanı sağlayıcısını desteklemek zorunda olduğunda ADO.NET soyutlamalarına karşı programlama. Bir uygulama SQL Server'ı hedefliyor ve sağlayıcıya özgü özelliklere ihtiyaç duyduğunda SqlClient türlerini kullanın.
Bağlantılı veri erişimi
Bağlı erişim, bir komut çalışırken ve uygulama sonuçlarını okurken bağlantıyı erişilebilir kılar.
Yaygın bir istek şu sırayı izler:
- Bir bağlantı dizesinden
SqlConnectionoluşturun. - Bağlantıyı açın.
- Bir
SqlCommandoluşturun veSqlParameterdeğerleri ekleyin. - komutunu yürütün.
- Bir skaler değeri, etkilenen satır sayısını veya
SqlDataReaderişleyin. - Okuyucuyu, komutu ve bağlantıyı ortadan kaldırın.
Çoğu web API, servis, işçi ve komut satırı uygulaması için bağlı erişim kullanın.
SqlDataReader Satır akışını yapar ve genellikle tüm sonucu bir DataSet'a yüklemekten daha az bellek kullanır.
Her iş birimi için bir SqlConnection açıp ortadan kaldırmak olağan yaklaşımdır. Bağlantı havuzu temel fiziksel bağlantıyı yeniden kullanır. Bir uygulamanın ömrü boyunca tek bir küresel bağlantıyı açık tutmayın.
Bağlantısız veri erişimi
SqlDataAdapter, SQL Server ile bellek içi DataSet veya DataTable arasında veri aktarır. Uygulama, bellek içindeki verileri okurken veya değiştirirken bağlantıyı kapatabilir, ardından güncellemeleri göndermek için yeniden bağlanabilir.
İhtiyacınız olduğunda bağlantısı kesilen erişimi kullanın:
-
DataSetveyaDataTableöğesine veri bağlama. - Hafıza içi ilişkiler ve kısıtlamalar.
- Daha sonra uzlaştırılan çevrimdışı düzenlemeler.
- DataAdapter'lar etrafında kurulmuş mevcut bir uygulama ile uyumluluk.
Yeni istek odaklı hizmetler için, bağlantısı kesilen nesne modeline ihtiyacınız olmadığı sürece ve SqlCommandSqlDataReader ile başlayın.
SQL Server'a özgü özellikler
Microsoft. Data.SqlClient, sağlayıcıdan bağımsız ADO.NET sözleşmesinin parçası olmayan API'ler ve bağlantı davranışları ekler:
- Microsoft Entra kimlik doğrulama ve erişim token geri çağrıları.
- TDS 8.0 sıkı şifreleme ve SQL Server sertifika seçenekleri.
- Her zaman şifreli ve güvenli bölgeler.
-
SqlBulkCopyyüksek aktarım hacimli veri yükleme için. - Tablo değerli parametreler.
- SQL Server veri türleri, JSON ve vektör türleri dahil.
- Yapılandırılabilir yeniden deneme mantığı.
- SQL Server tanıları, istatistikleri ve sayaçları.
- Erişilebilirlik grubu ve failover bağlantı seçenekleri.
Bu özellikleri kullanmak, o kodu Microsoft.Data.SqlClient’a bağımlı hâle getirir. Uygulamanın geri kalanı sağlayıcıdan bağımsız kalmak zorundasa, sağlayıcıya özgü kodu veri erişim sınırının arkasında tutun.
Nesne ömrü ve eşzamanlılık
Bağlantıları, komutları, okuyucuları, işlemleri ve toplu kopya nesnelerini hemen ortadan kaldırın. Bir tür IAsyncDisposable uyguluyorsa, await using öğesini asenkron kodla kullanın.
SqlConnection, SqlCommand, SqlDataReader, ve SqlTransaction birden fazla iş parçacığından eşzamanlı kullanımı desteklemiyor. Her eşzamanlı operasyona kendi bağlantısını verin ve bağlantı havuzuna güvenin. Birden fazla Aktif Sonuç Kümesi (MARS), bir bağlantıda birden fazla aktif sonuç setine izin verir, ancak SqlClient nesnelerini iş parçacığına güvenli hale getirmez.
Paketler ve isim alanları
NuGet paketini Microsoft.Data.SqlClient yükleyin ve namespace'i Microsoft.Data.SqlClient içe aktarın. Sürücü .NET'ten bağımsız olarak gönderilir, bu nedenle özellik, sürüm ve destek takvimleri .NET çalışma zamanından farklıdır.
System.Data.SqlClient daha eski sağlayıcıdır. Yeni geliştirmeler için Microsoft.Data.SqlClient kullanın. Mevcut bir uygulama için, System.Data.SqlClient'tan Microsoft.Data.SqlClient'a Geçiş başlıklı makaleyi izleyin.