Dil

SqlConnectionStringBuilder Sınıf

Tanım

SqlConnection sınıfı tarafından kullanılan bağlantı dizelerinin içeriğini oluşturmak ve yönetmek için basit bir yol sağlar.

public ref class SqlConnectionStringBuilder sealed : System::Data::Common::DbConnectionStringBuilder
[System.ComponentModel.TypeConverter(typeof(Microsoft.Data.SqlClient.SqlConnectionStringBuilder+SqlConnectionStringBuilderConverter))]
public sealed class SqlConnectionStringBuilder : System.Data.Common.DbConnectionStringBuilder
public sealed class SqlConnectionStringBuilder : System.Data.Common.DbConnectionStringBuilder
[<System.ComponentModel.TypeConverter(typeof(Microsoft.Data.SqlClient.SqlConnectionStringBuilder+SqlConnectionStringBuilderConverter))>]
type SqlConnectionStringBuilder = class
    inherit DbConnectionStringBuilder
type SqlConnectionStringBuilder = class
    inherit DbConnectionStringBuilder
Public NotInheritable Class SqlConnectionStringBuilder
Inherits DbConnectionStringBuilder
Devralma
SqlConnectionStringBuilder
Öznitelikler

Örnekler

Aşağıdaki konsol uygulaması bir SQL Server veritabanı için bağlantı dizeleri oluşturur. Kod, bağlantı dizesi oluşturmak için bir SqlConnectionStringBuilder sınıf kullanır ve ardından örneğin özelliğini SqlConnectionStringBuilder bağlantı sınıfının oluşturucusna geçirirConnectionString. Örnek ayrıca var olan bir bağlantı dizesi ayrıştırarak bağlantı dizesi içeriğini düzenlemenin çeşitli yollarını gösterir.

Note

Bu örnek, bağlantı dizeleriyle nasıl SqlConnectionStringBuilder çalıştığını gösteren bir parola içerir. Uygulamalarınızda Windows Kimlik Doğrulaması kullanmanızı öneririz. Parola kullanmanız gerekiyorsa, uygulamanıza sabit kodlanmış bir parola eklemeyin.

using Microsoft.Data.SqlClient;

class Program
{
    static void Main()
    {
        // Create a new SqlConnectionStringBuilder and
        // initialize it with a few name/value pairs.
        SqlConnectionStringBuilder builder =
            new SqlConnectionStringBuilder(GetConnectionString());

        // The input connection string used the 
        // Server key, but the new connection string uses
        // the well-known Data Source key instead.
        Console.WriteLine(builder.ConnectionString);

        // Pass the SqlConnectionStringBuilder an existing 
        // connection string, and you can retrieve and
        // modify any of the elements.
        builder.ConnectionString = "server=(local);user id=ab;" +
            "password=********;initial catalog=AdventureWorks";

        // Now that the connection string has been parsed,
        // you can work with individual items.
        Console.WriteLine(builder.Password);
        builder.Password = "********";

        // You can refer to connection keys using strings, 
        // as well. When you use this technique (the default
        // Item property in Visual Basic, or the indexer in C#),
        // you can specify any synonym for the connection string key
        // name.
        builder["Server"] = ".";
        builder["Connect Timeout"] = 1000;
        builder["Trusted_Connection"] = true;
        Console.WriteLine(builder.ConnectionString);

        Console.WriteLine("Press Enter to finish.");
        Console.ReadLine();
    }

    private static string GetConnectionString()
    {
        // To avoid storing the connection string in your code,
        // you can retrieve it from a configuration file. 
        return "Server=(local);Integrated Security=SSPI;" +
            "Initial Catalog=AdventureWorks";
    }
}

Açıklamalar

Bağlantı dizesi oluşturucusu, geliştiricilerin program aracılığıyla el dizimsel olarak doğru bağlantı dizeleri oluşturmasına ve sınıfın özelliklerini ve yöntemlerini kullanarak mevcut bağlantı dizelerini ayrıştırıp yeniden oluşturmasına olanak tanır. Bağlantı dizesi oluşturucusu, SQL Server tarafından izin verilen bilinen anahtar/değer çiftlerine karşılık gelen kesin olarak belirlenmiş özellikler sağlar. Uygulamaların bir parçası olarak bağlantı dizeleri oluşturması gereken geliştiriciler, bağlantı dizelerini oluşturmak ve değiştirmek için sınıfını kullanabilir SqlConnectionStringBuilder . sınıfı, bir uygulama yapılandırma dosyasında depolanan bağlantı dizelerini yönetmeyi de kolaylaştırır.

geçerli SqlConnectionStringBuilder anahtar/değer çiftleri için denetimler gerçekleştirir. Bu nedenle, geçersiz bağlantı dizeleri oluşturmak için bu sınıfı kullanamazsınız; Geçersiz çiftler eklemeye çalışılırsa bir özel durum oluşturulur. sınıfı, sabit bir eş anlamlılar koleksiyonu tutar ve eş anlamlıdan ilgili iyi bilinen anahtar adına çevirebilir.

Örneğin, bir değeri almak için Item özelliğini kullandığınızda, ihtiyacınız olan anahtar için herhangi bir eş anlamlı içeren bir dize belirtebilirsiniz. Örneğin, Item özelliği veya yöntemi gibi anahtar adını içeren bir dize gerektiren bir üye kullandığınızda, bir bağlantı dizesi içinde bu anahtar için "Ağ Adresi", "ekleyici" veya Remove diğer kabul edilebilir eş anlamlıları belirtebilirsiniz. Kabul edilebilir eş anlamlıların tam listesi için ConnectionString özelliğine bakın.

Item özelliği tanıtıcıları kötü amaçlı girdiler eklemeye çalışır. Örneğin, aşağıdaki kodda varsayılan Item özelliği (C#'de dizin oluşturucu) kullanıldığında iç içe anahtar/değer çifti doğru şekilde kaçılır:

Dim builder As New Microsoft.Data.SqlClient.SqlConnectionStringBuilder  
builder("Data Source") = "(local)"  
builder("Integrated Security") = True  
builder("Initial Catalog") = "AdventureWorks;NewValue=Bad"  
Console.WriteLine(builder.ConnectionString)  
Microsoft.Data.SqlClient.SqlConnectionStringBuilder builder =  
new Microsoft.Data.SqlClient.SqlConnectionStringBuilder();  
builder["Data Source"] = "(local)";  
builder["Integrated Security"] = true;  
builder["Initial Catalog"] = "AdventureWorks;NewValue=Bad";  
Console.WriteLine(builder.ConnectionString);  

Sonuç, geçersiz değeri güvenli bir şekilde işleyen aşağıdaki bağlantı dizesidir:

Source=(local);Initial Catalog="AdventureWorks;NewValue=Bad";  
Integrated Security=True  

Oluşturucular

Veri Akışı Adı Description
SqlConnectionStringBuilder()

SqlConnectionStringBuilder sınıfının yeni bir örneğini başlatır.

SqlConnectionStringBuilder(String)

SqlConnectionStringBuilder sınıfının yeni bir örneğini başlatır. Sağlanan bağlantı dizesi, örneğin iç bağlantı bilgileri için verileri sağlar.

Özellikler

Veri Akışı Adı Description
ApplicationIntent

SQL Server Kullanılabilirlik Grubundaki bir veritabanına bağlanırken uygulama iş yükü türünü bildirir. bu özelliğin değerini ApplicationIntentile ayarlayabilirsiniz. Always On Kullanılabilirlik Grupları için SqlClient desteği hakkında daha fazla bilgi için bkz. Yüksek Kullanılabilirlik için SqlClient Desteği, Olağanüstü Durum Kurtarma.

ApplicationName

Bağlantı dizesiyle ilişkili uygulamanın adını alır veya ayarlar.

AsynchronousProcessing
Geçersiz.

Obsolete. Bu bağlantı dizesi kullanılarak oluşturulan bağlantı tarafından zaman uyumsuz işlemeye izin verilip verilmeyeceğini belirten bir Boole değeri alır veya ayarlar.

AttachDBFilename

Birincil veri dosyasının adını içeren bir dize alır veya ayarlar. Bu, eklenebilir veritabanının tam yol adını içerir.

AttestationProtocol

Kanıtlama Protokolü değerini alır veya ayarlar.

Authentication

Azure SQL kaynaklarına Microsoft Entra ile bağlanma için kullanılan kimlik doğrulama yöntemini alır veya ayarlar.

ColumnEncryptionSetting

Bağlantı dizesi oluşturucusu için sütun şifreleme ayarlarını alır veya ayarlar.

CommandTimeout

Komut yürütme girişimini sonlandırmadan ve hata oluşturmadan önce varsayılan bekleme süresi (saniye cinsinden). Varsayılan değer 30 saniyedir.

ConnectionReset
Geçersiz.
Geçersiz.

Obsolete. Bağlantı havuzundan çekildiğinde bağlantının sıfırlanıp sıfırlandığını belirten bir Boole değeri alır veya ayarlar.

ConnectRetryCount

Boşta bağlantı hatası olduğunu belirledikten sonra denenen yeniden bağlantı sayısı. Bu, 0 ile 255 arasında bir tamsayı olmalıdır. Azure olmayan uç noktalar için varsayılan değer 1'dir. Azure SQL uç noktaları için varsayılan değer 2'dir. 5.x sürümünden başlayarak, Azure SQL sunucusuz veya isteğe bağlı uç noktalar için, boşta veya duraklatılmış bir örneğe yapılan bağlantılarda bağlantı başarısını artırmak için varsayılan değer 5'tir. Boşta bağlantı hatalarında yeniden bağlanmayı devre dışı bırakmak için 0 olarak ayarlayın. ArgumentException, izin verilen aralığın dışında bir değere ayarlanırsa oluşturulur.

ConnectRetryInterval

Boşta bağlantı hatası olduğunu belirledikten sonra her yeniden bağlanma girişimi arasındaki süre (saniye cinsinden). Bu, 1 ile 60 arasında bir tamsayı olmalıdır. Varsayılan değer 10 saniyedir.

ConnectTimeout

Denemeyi sonlandırmadan ve hata oluşturmadan önce sunucu bağlantısını bekleme süresini (saniye cinsinden) alır veya ayarlar.

ContextConnection
Geçersiz.

Obsolete. SQL Server'a bir istemci/sunucu veya işlem içi bağlantı yapılması gerektiğini belirten bir değer alır veya ayarlar.

CurrentLanguage

Veritabanı sunucusu uyarı veya hata iletileri için kullanılan dili alır veya ayarlar..

DataSource

Bağlanacak SQL Server örneğinin adını veya ağ adresini alır veya ayarlar.

EnclaveAttestationUrl

Kapanım tabanlı Always Encrypted ile kullanılacak kapanım kanıtlama URL'sini alır veya ayarlar.

Encrypt

5.0 sürümünden bu yana bir SqlConnectionEncryptOption değer veya istemci ile sunucu arasında gönderilen tüm veriler için TLS şifrelemesinin gerekli olup olmadığını gösteren önceki sürümler için bir Boolean değer alır veya ayarlar.

Enlist

SQL Server bağlantı havuzunun bağlantıyı oluşturma iş parçacığının geçerli işlem bağlamında otomatik olarak listeleyip listelemediğini gösteren bir Boole değeri alır veya ayarlar.

FailoverPartner

Birincil sunucu çalışmıyorsa bağlanacak iş ortağı sunucusunun adını veya adresini alır veya ayarlar.

FailoverPartnerSPN

Bağlantı için yük devretme ortağının hizmet asıl adını (SPN) alır veya ayarlar.

HostNameInCertificate

Bağlantı için sunucu sertifikası doğrulanırken kullanılacak ana bilgisayar adını alır veya ayarlar. Belirtilmediğinde, 'den Data Source sunucu adı sertifika doğrulaması için kullanılır. (Yalnızca v5.0+'da kullanılabilir)

IdleTimeout

Bağlantının atılmadan önce bağlantı havuzunda kullanılmayan (boşta) durabileceği en uzun süreyi saniye cinsinden alır veya ayarlar. Varsayılan değer 300'dür (5 dakika).

InitialCatalog

Bağlantıyla ilişkili veritabanının adını alır veya ayarlar.

IntegratedSecurity

Kullanıcı Kimliği ve Parola'nın bağlantıda (ne zaman false ) belirtildiğini veya geçerli Windows hesabı kimlik bilgilerinin kimlik doğrulaması için kullanılıp kullanılmadığını (ne zaman true ) belirten bir Boole değeri alır veya ayarlar.

IPAddressPreference

TCP bağlantıları kurarken IP adresi ailesi tercihini alır veya ayarlar.

IsFixedSize

SqlConnectionStringBuilder sabit bir boyuta sahip olup olmadığını gösteren bir değer alır.

Item[String]

Belirtilen anahtarla ilişkili değeri alır veya ayarlar. C# dilinde bu özellik dizin oluşturucudur.

Keys

içindeki ICollectionanahtarları içeren bir SqlConnectionStringBuilder alır.

LoadBalanceTimeout

Bağlantının yok edilmeden önce bağlantı havuzunda yaşaması için en düşük süreyi saniye cinsinden alır veya ayarlar.

MaxPoolSize

Bu belirli bağlantı dizesi için bağlantı havuzunda izin verilen en fazla bağlantı sayısını alır veya ayarlar.

MinPoolSize

Bu özel bağlantı dizesi için bağlantı havuzunda izin verilen en az bağlantı sayısını alır veya ayarlar.

MultipleActiveResultSets

True olduğunda, bir uygulama birden çok etkin sonuç kümesini (MARS) koruyabilir. False olduğunda, uygulamanın bu bağlantıda başka bir toplu işlemi yürütebilmesi için önce bir toplu işlemden tüm sonuç kümelerini işlemesi veya iptal etmesi gerekir. Daha fazla bilgi için bkz . Birden Çok Etkin Sonuç Kümesi (MARS).

MultiSubnetFailover

Uygulamanız farklı alt ağlardaki bir AlwaysOn kullanılabilirlik grubuna (AG) bağlanıyorsa, ayar MultiSubnetFailover=true (şu anda) etkin sunucuya daha hızlı algılama ve bağlantı sağlar. Always On Kullanılabilirlik Grupları için SqlClient desteği hakkında daha fazla bilgi için bkz. Yüksek Kullanılabilirlik için SqlClient Desteği, Olağanüstü Durum Kurtarma.

NetworkLibrary

SQL Server'a bağlantı kurmak için kullanılan ağ kitaplığının adını içeren bir dize alır veya ayarlar.

PacketSize

SQL Server örneğiyle iletişim kurmak için kullanılan ağ paketlerinin bayt cinsinden boyutunu alır veya ayarlar.

Password

SQL Server hesabının parolasını alır veya ayarlar.

PersistSecurityInfo

Parola veya erişim belirteci gibi güvenlik açısından hassas bilgilerin, bu bağlantı açık durumda olduktan sonra bu SqlConnectionStringBuilder bağlantıyla oluşturulan bir bağlantıda bağlantı dizesi parçası olarak döndürülmesi gerekip gerekmediğini belirten bir Boole değeri alır veya ayarlar. Bu özellik yalnızca uygulamanızın zaten açılmış bir veritabanı bağlantısından parolayı okuması için belirli bir ihtiyacı varsa olarak ayarlanmalıdır true . varsayılan değeri false daha güvenli ayardır; bu özellik için kullanıldığında true , yanlışlıkla günlüğe kaydetme veya veritabanı parolasını izleme gibi güvenlik risklerine karşı uygulamanızı açar.

PoolBlockingPeriod

Bağlantı havuzu için engelleme süresi davranışı.

Pooling

Bağlantı her istenildiğinde bağlantının havuza alınıp alınmayacağını veya açıkça açılacağını belirten bir Boole değeri alır veya ayarlar.

Replication

Bağlantı kullanılarak çoğaltmanın desteklenip desteklenmediğini belirten bir Boole değeri alır veya ayarlar.

ServerCertificate

Bir sertifika dosyasının yolunu, bağlantının SQL Server TLS/SSL sertifikasıyla eşleşecek şekilde alır veya ayarlar. Kabul edilen sertifika biçimleri PEM, DER ve CER'tir. Belirtilirse, sağlanan sertifikanın tam eşleşme olup olmadığını ServerCertificate doğrulayarak SQL Server sertifikası denetlenir. (Yalnızca v5.1+'da kullanılabilir)

ServerSPN

Veri kaynağının hizmet asıl adını (SPN) alır veya ayarlar.

TransactionBinding

Bağlantının listelenmiş System.Transactions bir işlemle ilişkisini nasıl koruduğunu gösteren bir dize değeri alır veya ayarlar.

TransparentNetworkIPResolution
Geçersiz.

.NET Framework'te, bu anahtarın değeri olarak trueayarlandığında, sürücü DNS tarafından çözümlenen IP adresleri arasında, bir bağlantı başarılı olana veya genele Connect Timeout ulaşılana kadar deneme başına aşamalı olarak daha büyük zaman aşımları ve sıralı mod denemesinde en az 500 ms olmak üzere birden çok bağlantı turu çalıştırır.

TrustServerCertificate

Güveni doğrulamak için sertifika zincirinde yürümeyi atlarken kanalın şifrelenip şifrelenmediğini belirten bir değer alır veya ayarlar.

TypeSystemVersion

Uygulamanın beklediği tür sistemini gösteren bir dize değeri alır veya ayarlar.

UserID

SQL Server'a bağlanırken kullanılacak kullanıcı kimliğini alır veya ayarlar.

UserInstance

Bağlantıyı varsayılan SQL Server Express örneğinden çağıranın hesabı altında çalışan çalışma zamanı tarafından başlatılan bir örneğe yeniden yönlendirilip yönlendirilmeyeceğini belirten bir değer alır veya ayarlar.

Values

içindeki SqlConnectionStringBuilder değerleri içeren bir ICollection alır.

WorkstationID

SQL Server'a bağlanan iş istasyonunun adını alır veya ayarlar.

Yöntemler

Veri Akışı Adı Description
Clear()

Örneğin içeriğini SqlConnectionStringBuilder temizler.

ContainsKey(String)

SqlConnectionStringBuilder belirli bir anahtar içerip içermediğini belirler.

Remove(String)

Belirtilen anahtara sahip girişi SqlConnectionStringBuilder örneğinden kaldırır.

ShouldSerialize(String)

Belirtilen anahtarın bu SqlConnectionStringBuilder örneğinde var olup olmadığını gösterir.

TryGetValue(String, Object)

Bu SqlConnectionStringBuilder anahtarından sağlanan anahtara karşılık gelen bir değer alır.

Şunlara uygulanır