Sprache

SqlConnectionStringBuilder Klasse

Definition

Bietet eine einfache Möglichkeit zum Erstellen und Verwalten des Inhalts von Verbindungszeichenfolgen, die von der SqlConnection Klasse verwendet werden.

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
Vererbung
SqlConnectionStringBuilder
Attribute

Beispiele

Die folgende Konsolenanwendung erstellt Verbindungszeichenfolgen für eine SQL Server-Datenbank. Der Code verwendet eine SqlConnectionStringBuilder Klasse zum Erstellen des Verbindungszeichenfolge und übergibt dann die ConnectionString Eigenschaft der SqlConnectionStringBuilder Instanz an den Konstruktor der Verbindungsklasse. Im Beispiel wird auch eine vorhandene Verbindungszeichenfolge analysiert und verschiedene Möglichkeiten zum Bearbeiten des Inhalts der Verbindungszeichenfolge veranschaulicht.

Hinweis

Dieses Beispiel enthält ein Kennwort, um die Funktionsweise mit Verbindungszeichenfolgen zu veranschaulichen SqlConnectionStringBuilder . In Ihren Anwendungen wird empfohlen, die Windows-Authentifizierung zu verwenden. Wenn Sie ein Kennwort verwenden müssen, fügen Sie kein hartcodiertes Kennwort in Ihre Anwendung ein.

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";
    }
}

Hinweise

Mit dem Verbindungszeichenfolgen-Generator können Entwickler syntaktisch korrekte Verbindungszeichenfolgen erstellen und vorhandene Verbindungszeichenfolgen mithilfe von Eigenschaften und Methoden der Klasse analysieren und neu erstellen. Der Verbindungszeichenfolgen-Generator stellt stark typierte Eigenschaften bereit, die den bekannten Schlüssel-Wert-Paaren entsprechen, die von SQL Server zulässig sind. Entwickler, die verbindungszeichenfolgen als Teil von Anwendungen erstellen müssen, können die SqlConnectionStringBuilder Klasse verwenden, um Verbindungszeichenfolgen zu erstellen und zu ändern. Die Klasse erleichtert auch die Verwaltung von Verbindungszeichenfolgen, die in einer Anwendungskonfigurationsdatei gespeichert sind.

Die SqlConnectionStringBuilder Durchführung führt Überprüfungen auf gültige Schlüssel-Wert-Paare durch. Daher können Sie diese Klasse nicht verwenden, um ungültige Verbindungszeichenfolgen zu erstellen. Wenn Sie versuchen, ungültige Paare hinzuzufügen, wird eine Ausnahme ausgelöst. Die Klasse verwaltet eine feste Sammlung von Synonymen und kann von einem Synonym in den entsprechenden bekannten Schlüsselnamen übersetzt werden.

Wenn Sie beispielsweise die Item-Eigenschaft verwenden, um einen Wert abzurufen, können Sie eine Zeichenfolge angeben, die ein beliebiges Synonym für den benötigten Schlüssel enthält. Sie können z. B. "Netzwerkadresse", "Addr" oder ein anderes zulässiges Synonym für diesen Schlüssel innerhalb eines Verbindungszeichenfolge angeben, wenn Sie ein Element verwenden, das eine Zeichenfolge erfordert, die den Schlüsselnamen enthält, z. B. die Item-Eigenschaft oder die Remove Methode. Eine vollständige Liste zulässiger Synonyme finden Sie in der ConnectionString-Eigenschaft.

Die Item-Eigenschaft behandelt versuche, schädliche Einträge einzufügen. Mit dem folgenden Code wird z. B. mithilfe der Standardeigenschaft "Item" (der Indexer in C#) das geschachtelte Schlüssel-Wert-Paar ordnungsgemäß escapet:

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);  

Das Ergebnis ist die folgende Verbindungszeichenfolge, die den ungültigen Wert auf sichere Weise behandelt:

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

Konstruktoren

Name Beschreibung
SqlConnectionStringBuilder()

Initialisiert eine neue Instanz der SqlConnectionStringBuilder-Klasse.

SqlConnectionStringBuilder(String)

Initialisiert eine neue Instanz der SqlConnectionStringBuilder-Klasse. Die bereitgestellte Verbindungszeichenfolge stellt die Daten für die internen Verbindungsinformationen der Instanz bereit.

Eigenschaften

Name Beschreibung
ApplicationIntent

Deklariert den Anwendungsauslastungstyp beim Herstellen einer Verbindung mit einer Datenbank in einer SQL Server-Verfügbarkeitsgruppe. Sie können den Wert dieser Eigenschaft mit ApplicationIntentfestlegen. Weitere Informationen zur SqlClient-Unterstützung für Always On-Verfügbarkeitsgruppen finden Sie unter SqlClient-Unterstützung für hohe Verfügbarkeit, Notfallwiederherstellung.

ApplicationName

Dient zum Abrufen oder Festlegen des Namens der Anwendung, die der Verbindungszeichenfolge zugeordnet ist.

AsynchronousProcessing
Veraltet.

Obsolete. Dient zum Abrufen oder Festlegen eines booleschen Werts, der angibt, ob die asynchrone Verarbeitung von der mithilfe dieser Verbindungszeichenfolge erstellten Verbindung zulässig ist.

AttachDBFilename

Dient zum Abrufen oder Festlegen einer Zeichenfolge, die den Namen der primären Datendatei enthält. Dies schließt den vollständigen Pfadnamen einer anfügenden Datenbank ein.

AttestationProtocol

Dient zum Abrufen oder Festlegen des Werts des Nachweisprotokolls.

Authentication

Dient zum Abrufen oder Festlegen der Authentifizierungsmethode, die für Connect mit Microsoft Entra verwendet wird, um Ressourcen zu Azure SQL.

ColumnEncryptionSetting

Dient zum Abrufen oder Festlegen der Spaltenverschlüsselungseinstellungen für den Verbindungszeichenfolgen-Generator.

CommandTimeout

Standardwartezeit (in Sekunden), die gewartet werden soll, bis der Versuch einer Befehlsausführung beendet und ein Fehler generiert wird Der Standardwert ist 30 Sekunden.

ConnectionReset
Veraltet.
Veraltet.

Obsolete. Dient zum Abrufen oder Festlegen eines booleschen Werts, der angibt, ob die Verbindung zurückgesetzt wird, wenn sie aus dem Verbindungspool gezeichnet wird.

ConnectRetryCount

Die Anzahl der erneuten Verbindungen, die versucht wurden, nachdem ermittelt wurde, dass ein Leerlaufverbindungsfehler aufgetreten ist. Dies muss eine ganze Zahl zwischen 0 und 255 sein. Der Standardwert für nicht Azure Endpunkte ist 1. Für Azure SQL Endpunkte ist der Standardwert 2. Ab Version 5.x ist für Azure SQL serverlosen oder bei Bedarfsendpunkten der Standardwert 5, um den Verbindungserfolg für Verbindungen mit einer leerlauf- oder angehaltenen Instanz zu verbessern. Legen Sie auf 0 fest, um die erneute Verbindung bei Verbindungsfehlern im Leerlauf zu deaktivieren. Wird ArgumentException ausgelöst, wenn er auf einen Wert außerhalb des zulässigen Bereichs festgelegt ist.

ConnectRetryInterval

Zeitraum (in Sekunden) zwischen jedem erneuten Verbindungsversuch, nachdem ermittelt wurde, dass ein Leerlaufverbindungsfehler aufgetreten ist. Dies muss eine ganze Zahl zwischen 1 und 60 sein. Der Standardwert ist 10 Sekunden.

ConnectTimeout

Ruft die Dauer (in Sekunden) ab, die auf eine Verbindung mit dem Server wartet, bevor der Versuch beendet und ein Fehler generiert wird, oder legt diese fest.

ContextConnection
Veraltet.

Obsolete. Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob eine Client-/Server- oder In-Process-Verbindung mit SQL Server hergestellt werden soll.

CurrentLanguage

Dient zum Abrufen oder Festlegen der Sprache, die für Datenbankserverwarnungen oder Fehlermeldungen verwendet wird.

DataSource

Ruft den Namen oder die Netzwerkadresse der Sql Server-Instanz ab, mit der eine Verbindung hergestellt werden soll, oder legt diese fest.

EnclaveAttestationUrl

Ruft die Enklavennachweis-URL ab, die mit Enklave basiert Always Encrypted verwendet werden soll, oder legt diese fest.

Encrypt

Dient zum Abrufen oder Festlegen eines SqlConnectionEncryptOption Werts seit Version 5.0 oder einem Boolean Wert für die früheren Versionen, der angibt, ob tls-Verschlüsselung für alle Daten erforderlich ist, die zwischen dem Client und dem Server gesendet werden.

Enlist

Dient zum Abrufen oder Festlegen eines booleschen Werts, der angibt, ob der SQL Server Verbindungspool die Verbindung automatisch im aktuellen Transaktionskontext des Erstellungsthreads auflistet.

FailoverPartner

Ruft den Namen oder die Adresse des Partnerservers ab, mit dem eine Verbindung hergestellt werden soll, wenn der primäre Server ausgefallen ist, oder legt diesen fest.

FailoverPartnerSPN

Dient zum Abrufen oder Festlegen des Dienstprinzipalnamens (SPN) des Failoverpartners für die Verbindung.

HostNameInCertificate

Ruft den Hostnamen ab, der beim Überprüfen des Serverzertifikats für die Verbindung verwendet werden soll, oder legt diesen fest. Wenn nicht angegeben, wird der Servername aus der Data Source Zertifikatüberprüfung verwendet. (Nur verfügbar in v5.0+)

IdleTimeout

Ruft ab oder legt die maximale Zeit in Sekunden, dass eine Verbindung nicht verwendet (im Leerlauf) im Verbindungspool sitzen kann, bevor sie verworfen wird. Der Standardwert ist 300 (5 Minuten).

InitialCatalog

Dient zum Abrufen oder Festlegen des Namens der Datenbank, die der Verbindung zugeordnet ist.

IntegratedSecurity

Dient zum Abrufen oder Festlegen eines booleschen Werts, der angibt, ob Benutzer-ID und Kennwort in der Verbindung angegeben werden (wenn false ) oder ob die aktuellen Windows Kontoanmeldeinformationen für die Authentifizierung (wenn true ) verwendet werden.

IPAddressPreference

Ruft die IP-Adressfamilieneinstellung beim Einrichten von TCP-Verbindungen ab oder legt diese fest.

IsFixedSize

Ruft einen Wert ab, der angibt, ob die SqlConnectionStringBuilder eine feste Größe aufweist.

Item[String]

Dient zum Abrufen oder Festlegen des Werts, der dem angegebenen Schlüssel zugeordnet ist. In C# ist diese Eigenschaft der Indexer.

Keys

Ruft eine ICollection ab, die die Schlüssel in der SqlConnectionStringBuilderenthält.

LoadBalanceTimeout

Ruft die Mindestzeit in Sekunden ab, damit die Verbindung im Verbindungspool lebt, bevor sie zerstört wird, oder legt diese fest.

MaxPoolSize

Dient zum Abrufen oder Festlegen der maximalen Anzahl von Verbindungen, die im Verbindungspool für diese bestimmte Verbindungszeichenfolge zulässig sind.

MinPoolSize

Ruft die mindestanzahl der im Verbindungspool zulässigen Verbindungen für diese bestimmte Verbindungszeichenfolge ab, oder legt diese fest.

MultipleActiveResultSets

Wenn true, kann eine Anwendung mehrere aktive Resultsets (MARS) verwalten. Wenn false, muss eine Anwendung alle Resultsets aus einem Batch verarbeiten oder abbrechen, bevor sie einen anderen Batch für diese Verbindung ausführen kann. Weitere Informationen finden Sie unter Multiple Active Result Sets (MARS).

MultiSubnetFailover

Wenn Ihre Anwendung eine Verbindung mit einer AlwaysOn-Verfügbarkeitsgruppe (ALWAYSOn Availability Group, AG) in verschiedenen Subnetzen herstellt, bietet die Einstellung MultiSubnetFailover=true eine schnellere Erkennung und Verbindung mit dem (derzeit) aktiven Server. Weitere Informationen zur SqlClient-Unterstützung für Always On-Verfügbarkeitsgruppen finden Sie unter SqlClient-Unterstützung für hohe Verfügbarkeit, Notfallwiederherstellung.

NetworkLibrary

Dient zum Abrufen oder Festlegen einer Zeichenfolge, die den Namen der Netzwerkbibliothek enthält, die zum Herstellen einer Verbindung mit sql Server verwendet wird.

PacketSize

Ruft die Größe in Byte der Netzwerkpakete ab, die für die Kommunikation mit einer Instanz von SQL Server verwendet werden, oder legt diese fest.

Password

Ruft das Kennwort für das SQL Server-Konto ab oder legt es fest.

PersistSecurityInfo

Dient zum Abrufen oder Festlegen eines booleschen Werts, der angibt, ob sicherheitsrelevante Informationen, z. B. das Kennwort oder Zugriffstoken, als Teil der Verbindungszeichenfolge für eine Verbindung zurückgegeben werden sollen, die mit dieser SqlConnectionStringBuilder Verbindung erstellt wurde, nachdem sich diese Verbindung jemals in einem geöffneten Zustand befindet. Diese Eigenschaft sollte nur festgelegt true werden, wenn Ihre Anwendung das Kennwort aus einer bereits geöffneten Datenbankverbindung lesen muss. Der Standardwert false ist die sicherere Einstellung. Die Verwendung true für diese Eigenschaft öffnet Ihre Anwendung zu Sicherheitsrisiken, z. B. versehentliche Protokollierung oder Ablaufverfolgung des Datenbankkennworts.

PoolBlockingPeriod

Das Blockierungszeitraumsverhalten für einen Verbindungspool.

Pooling

Dient zum Abrufen oder Festlegen eines booleschen Werts, der angibt, ob die Verbindung jedes Mal, wenn die Verbindung angefordert wird, pooliert oder explizit geöffnet wird.

Replication

Dient zum Abrufen oder Festlegen eines booleschen Werts, der angibt, ob die Replikation mithilfe der Verbindung unterstützt wird.

ServerCertificate

Dient zum Abrufen oder Festlegen des Pfads zu einer Zertifikatdatei, die mit dem SQL Server TLS/SSL-Zertifikat für die Verbindung übereinstimmen soll. Die akzeptierten Zertifikatformate sind PEM, DER und CER. Wenn angegeben, wird das SQL Server Zertifikat überprüft, indem überprüft wird, ob es sich bei der ServerCertificate angegebenen Angabe um eine genaue Übereinstimmung handelt. (Nur verfügbar in v5.1+)

ServerSPN

Dient zum Abrufen oder Festlegen des Dienstprinzipalnamens (SPN) der Datenquelle.

TransactionBinding

Dient zum Abrufen oder Festlegen eines Zeichenfolgenwerts, der angibt, wie die Verbindung ihre Zuordnung mit einer in der Liste aufgeführten System.Transactions Transaktion verwaltet.

TransparentNetworkIPResolution
Veraltet.

Wenn der Wert dieses Schlüssels auf .NET Framework festgelegt trueist, führt der Treiber mehrere Verbindungsrunden über die DNS-aufgelösten IP-Adressen aus, wobei timeouts pro Versuch schrittweise größer und mindestens 500 ms für den sequenziellen Modus versucht werden, bis eine Verbindung erfolgreich ist oder die Gesamtanzahl Connect Timeout erreicht ist.

TrustServerCertificate

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob der Kanal verschlüsselt wird, während die Zertifikatkette umgangen wird, um die Vertrauensstellung zu überprüfen.

TypeSystemVersion

Dient zum Abrufen oder Festlegen eines Zeichenfolgenwerts, der das Typsystem angibt, das die Anwendung erwartet.

UserID

Ruft die Benutzer-ID ab, die beim Herstellen einer Verbindung mit SQL Server verwendet werden soll, oder legt diese fest.

UserInstance

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die Verbindung von der standardmäßigen SQL Server Express-Instanz zu einer laufzeitinitiierte Instanz umgeleitet werden soll, die unter dem Konto des Aufrufers ausgeführt wird.

Values

Ruft eine ICollection , die die Werte in der SqlConnectionStringBuilder .

WorkstationID

Ruft den Namen der Arbeitsstation ab, die eine Verbindung mit SQL Server herstellt, oder legt diesen fest.

Methoden

Name Beschreibung
Clear()

Löscht den Inhalt der SqlConnectionStringBuilder Instanz.

ContainsKey(String)

Bestimmt, ob der SqlConnectionStringBuilder Schlüssel einen bestimmten Schlüssel enthält.

Remove(String)

Entfernt den Eintrag mit dem angegebenen Schlüssel aus der SqlConnectionStringBuilder Instanz.

ShouldSerialize(String)

Gibt an, ob der angegebene Schlüssel in dieser SqlConnectionStringBuilder Instanz vorhanden ist.

TryGetValue(String, Object)

Ruft einen Wert ab, der dem angegebenen Schlüssel entspricht SqlConnectionStringBuilder .

Gilt für: