Aracılığıyla paylaş


SqlConnectionStringBuilder Sınıf

Tanım

sınıfı tarafından SqlConnection 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şturucusununa geçirirConnectionString. Örnek ayrıca mevcut bir bağlantı dizesi ayrıştırarak bağlantı dizesi içeriğini düzenlemenin çeşitli yollarını gösterir.

Not

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. Bir 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= a!Pass113;initial catalog=AdventureWorks";

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

        // 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 programlama yoluyla el değmemiş şekilde 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ışmak bir özel durum oluşturur. sınıfı, sabit bir eş anlamlılar koleksiyonu tutar ve bir 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, bağlantı dizesi içinde bu anahtar için "Ağ Adresi", "ekleyici" veya Remove kabul edilebilir başka bir eş anlamlı belirtebilirsiniz. ConnectionString Kabul edilebilir eş anlamlıların tam listesi için özelliğine bakın.

Item özellik tanıtıcıları kötü amaçlı girişler eklemeye çalışır. Örneğin, varsayılan Item özelliğinin (C#'de dizin oluşturucu) kullanıldığı aşağıdaki kod, iç içe anahtar/değer çiftinden doğru şekilde çıkış yapar:

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ı dizesi olur:

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

Oluşturucular

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ı bilgilerine ilişkin verileri sağlar.

Özellikler

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 ile ApplicationIntentayarlayabilirsiniz. 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ı dizesi ile ilişkili uygulamanın adını alır veya ayarlar.

AsynchronousProcessing
Geçersiz.

Kullanımdan kalktı. 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 Active Directory Kimlik Doğrulamasını Kullanarak SQL Veritabanı 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.

Kullanımdan kalktı. 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. Sunucusuz veya isteğe bağlı Azure SQL uç noktaları için 5.x sürümünden başlayarak, boşta veya duraklatılmış bir örneğe yapılan bağlantıların 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 İzin verilen aralığın dışında bir değere ayarlanırsa bir oluşturulur.

ConnectRetryInterval

Boşta bağlantı hatası olduğunu belirledikten sonra her yeniden bağlantı girişimi arasındaki süre (saniye olarak). 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ın beklenmesi için gereken süreyi (saniye cinsinden) alır veya ayarlar.

ContextConnection
Geçersiz.

Kullanımdan kalktı. SQL Server için 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ısı 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 kullanılacak kapanım kanıtlama URL'sini alır veya ayarlar.

Encrypt

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

Enlist

SQL Server bağlantı havuzu oluşturucunun bağlantıyı oluşturma iş parçacığının geçerli işlem bağlamında otomatik olarak listeleyip listelemediğini belirten 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)

InitialCatalog

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

IntegratedSecurity

Bağlantıda Kullanıcı Kimliği ve Parola'nın belirtilip belirtilmediğinde (ne zaman false) 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

sabit bir boyuta sahip olup olmadığını SqlConnectionStringBuilder 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 SqlConnectionStringBuilderanahtarları içeren bir ICollection alır.

LoadBalanceTimeout

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

MaxPoolSize

Bu özel 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 bir toplu işteki 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, MultiSubnetFailover=true ayarı etkin sunucu için 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 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ıdaki bağlantı dizesi parçası olarak döndürülmesi gerektiğini belirten bir Boole değeri alır veya ayarlar. Bu özellik yalnızca uygulamanızın zaten açık olan 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

Bağlantı için SQL Server TLS/SSL sertifikasıyla eşleşecek şekilde bir sertifika dosyasının yolunu alır veya ayarlar. Kabul edilen sertifika biçimleri PEM, DER ve CER'tir. Belirtilirse, sağlanan sertifikanın tam olarak eşleşip eşleşmediği ServerCertificate doğrulanarak 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 sürdürdüğünü gösteren bir dize değeri alır veya ayarlar.

TransparentNetworkIPResolution

Bu anahtarın değeri olarak ayarlandığında true, uygulamanın belirli bir DNS girdisinin tüm IP adreslerini alması ve listedeki ilk anahtarla bağlanmayı denemesi gerekir. Bağlantı 0,5 saniye içinde kurulmazsa, uygulama diğer tüm kullanıcılara paralel olarak bağlanmayı dener. İlk yanıtlar verildiğinde, uygulama yanıtlayan IP adresiyle bağlantı kurar.

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 bağlanırken kullanılacak kullanıcı kimliğini alır veya ayarlar.

UserInstance

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

Values

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

WorkstationID

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

Yöntemler

Clear()

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

ContainsKey(String)

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

Remove(String)

Belirtilen anahtara sahip girişi örnekten SqlConnectionStringBuilder kaldırır.

ShouldSerialize(String)

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

TryGetValue(String, Object)

Bu SqlConnectionStringBuilderanahtarından sağlanan anahtara karşılık gelen bir değeri alır.

Şunlara uygulanır