Freigeben über


DbConnectionStringBuilder Klasse

Definition

Stellt eine Basisklasse für stark typierte Verbindungszeichenfolgen-Generatoren bereit.

public ref class DbConnectionStringBuilder : System::Collections::IDictionary
public ref class DbConnectionStringBuilder : System::Collections::IDictionary, System::ComponentModel::ICustomTypeDescriptor
public class DbConnectionStringBuilder : System.Collections.IDictionary
public class DbConnectionStringBuilder : System.Collections.IDictionary, System.ComponentModel.ICustomTypeDescriptor
type DbConnectionStringBuilder = class
    interface ICollection
    interface IEnumerable
    interface IDictionary
type DbConnectionStringBuilder = class
    interface ICollection
    interface IEnumerable
    interface IDictionary
    interface ICustomTypeDescriptor
type DbConnectionStringBuilder = class
    interface IDictionary
    interface ICollection
    interface IEnumerable
    interface ICustomTypeDescriptor
Public Class DbConnectionStringBuilder
Implements IDictionary
Public Class DbConnectionStringBuilder
Implements ICustomTypeDescriptor, IDictionary
Vererbung
DbConnectionStringBuilder
Abgeleitet
Implementiert

Beispiele

Die folgende Konsolenanwendung erstellt zwei Verbindungszeichenfolgen, eine für eine Microsoft Jet-Datenbank und eine für eine SQL Server-Datenbank. In jedem Fall verwendet der Code eine generische DbConnectionStringBuilder Klasse, um die Verbindungszeichenfolge zu erstellen, und übergibt dann die ConnectionString-Eigenschaft der DbConnectionStringBuilder Instanz an den Konstruktor der stark typierten Verbindungsklasse. Dies ist nicht erforderlich; Der Code könnte auch einzelne stark typierte Verbindungszeichenfolgen-Generator-Instanzen erstellt haben. Im Beispiel wird auch eine vorhandene Verbindungszeichenfolge analysiert und verschiedene Möglichkeiten zum Bearbeiten des Inhalts der Verbindungszeichenfolge veranschaulicht.

DbConnectionStringBuilder builder =
    new DbConnectionStringBuilder();
builder.ConnectionString = @"Data Source=c:\MyData\MyDb.mdb";
builder.Add("Provider", "Microsoft.Jet.Oledb.4.0");
// Set up row-level locking.
builder.Add("Jet OLEDB:Database Locking Mode", 1);

// The DbConnectionStringBuilder class
// is database agnostic, so it's possible to
// build any type of connection string using
// this class.

// The ConnectionString property might have been
// formatted by the DbConnectionStringBuilder class.
OleDbConnection oledbConnect = new
    OleDbConnection(builder.ConnectionString);
Console.WriteLine(oledbConnect.ConnectionString);

// Use the same DbConnectionStringBuilder to create
// a SqlConnection object.
builder.Clear();
builder.Add("integrated security", true);
builder.Add("Initial Catalog", "AdventureWorks");
builder.Add("Data Source", "(local)");

SqlConnection sqlConnect = new
    SqlConnection(builder.ConnectionString);
Console.WriteLine(sqlConnect.ConnectionString);

// Pass the DbConnectionStringBuilder an existing
// connection string, and you can retrieve and
// modify any of the elements.
builder.ConnectionString = "server=(local);initial catalog=AdventureWorks";
builder["Server"] = ".";

// Setting the indexer adds the value, if necessary.
builder["Integrated Security"] = true;
Console.WriteLine(builder.ConnectionString);
Sub Main()
    Dim builder As New DbConnectionStringBuilder()
    builder.ConnectionString = "Data Source=c:\MyData\MyDb.mdb"
    builder.Add("Provider", "Microsoft.Jet.Oledb.4.0")

    ' Set up row-level locking.
    builder.Add("Jet OLEDB:Database Locking Mode", 1)

    ' Note that the DbConnectionStringBuilder class
    ' is database agnostic, and it's possible to
    ' build any type of connection string using
    ' this class.
    ' Notice that the ConnectionString property may have been
    ' formatted by the DbConnectionStringBuilder class.

    Dim oledbConnect As New _
        OleDbConnection(builder.ConnectionString)
    Console.WriteLine(oledbConnect.ConnectionString)

    ' Use the same DbConnectionStringBuilder to create
    ' a SqlConnection object.
    builder.Clear()
    builder.Add("integrated security", True)
    builder.Add("Initial Catalog", "AdventureWorks")
    builder.Add("Data Source", "(local)")

    Dim sqlConnect As New SqlConnection(builder.ConnectionString)
    Console.WriteLine(sqlConnect.ConnectionString)

    ' Pass the DbConnectionStringBuilder an existing
    ' connection string, and you can retrieve and
    ' modify any of the elements.
    builder.ConnectionString = "server=(local);initial catalog=AdventureWorks"
    builder.Item("Server") = "."

    ' The Item property is the default for the class,
    ' and setting the Item property adds the value if
    ' necessary.
    builder("Integrated Security") = True
    Console.WriteLine(builder.ConnectionString)

    Console.WriteLine("Press Enter to finish.")
    Console.ReadLine()
End Sub

Hinweise

Die DbConnectionStringBuilder-Klasse stellt die Basisklasse bereit, von der die stark typierten Verbindungszeichenfolgen-Generatoren (SqlConnectionStringBuilder, OleDbConnectionStringBuilderusw.) abgeleitet sind. Mit den Verbindungszeichenfolgen-Generatoren können Entwickler syntaktisch korrekte Verbindungszeichenfolgen programmgesteuert erstellen und vorhandene Verbindungszeichenfolgen analysieren und neu erstellen.

Die DbConnectionStringBuilder wurde auf datenbankunabhängige Weise definiert. Aufgrund des Hinzufügens des System.Data.Common-Namespaces benötigen Entwickler eine Basisklasse, mit der sie programmieren können, um Verbindungszeichenfolgen zu erstellen, die für eine beliebige Datenbank funktionieren können. Daher können Benutzer mit der DbConnectionStringBuilder Klasse beliebige Schlüssel-Wert-Paare zuweisen und die resultierende Verbindungszeichenfolge an einen stark typierten Anbieter übergeben. Alle Datenanbieter, die als Teil von .NET enthalten sind, bieten eine stark typierte Klasse, die von DbConnectionStringBuildererbt: SqlConnectionStringBuilder, OracleConnectionStringBuilder, OdbcConnectionStringBuilderund OleDbConnectionStringBuilder.

Sie können Verbindungszeichenfolgen für jeden beliebigen Anbieter erstellen, zuweisen und bearbeiten. Für Anbieter, die bestimmte Schlüssel-Wert-Paare unterstützen, stellt der Verbindungszeichenfolgen-Generator stark typierte Eigenschaften bereit, die den bekannten Paaren entsprechen. Für Anbieter, die die Möglichkeit benötigen, unbekannte Werte zu unterstützen, können Sie auch beliebige Schlüssel-Wert-Paare angeben.

Die DbConnectionStringBuilder Klasse implementiert die ICustomTypeDescriptor Schnittstelle. Dies bedeutet, dass die Klasse zur Entwurfszeit mit Visual Studio-Designern arbeitet. Wenn Entwickler den Designer verwenden, um stark typierte DataSets und stark typierte Verbindungen in Visual Studio zu erstellen, zeigt die stark typierte Verbindungszeichenfolgen-Generatorklasse die Eigenschaften an, die ihrem Typ zugeordnet sind, und verfügt auch über Konverter, die allgemeine Werte für bekannte Schlüssel zuordnen können.

Wenn Sie Verbindungszeichenfolgen als Teil von Anwendungen erstellen müssen, verwenden Sie die DbConnectionStringBuilder Klasse oder eine der stark typisierten Ableitungen, um Verbindungszeichenfolgen zu erstellen und zu ändern. Die DbConnectionStringBuilder Klasse erleichtert auch die Verwaltung von Verbindungszeichenfolgen, die in einer Anwendungskonfigurationsdatei gespeichert sind.

Sie können Verbindungszeichenfolgen entweder mithilfe einer stark typierten Verbindungszeichenfolgen-Generatorklasse oder der DbConnectionStringBuilder-Klasse erstellen. Die DbConnectionStringBuilder führt keine Überprüfungen nach gültigen Schlüssel-Wert-Paaren durch. Daher ist es möglich, bei Verwendung dieser Klasse ungültige Verbindungszeichenfolgen zu erstellen. Die SqlConnectionStringBuilder unterstützt nur Schlüssel-Wert-Paare, die von SQL Server unterstützt werden. Wenn Sie versuchen, ungültige Paare hinzuzufügen, wird eine Ausnahme ausgelöst.

Sowohl die Add-Methode als auch Item[] Eigenschaft behandeln Fälle, in denen ein ungültiger Akteur versucht, schädliche Einträge einzufügen. Mit dem folgenden Code wird z. B. das geschachtelte Schlüssel-Wert-Paar ordnungsgemäß escapet:

Dim builder As New System.Data.Common.DbConnectionStringBuilder
builder("Data Source") = "(local)"
builder("integrated sSecurity") = True
builder("Initial Catalog") = "AdventureWorks;NewValue=Bad"
System.Data.Common.DbConnectionStringBuilder builder = new System.Data.Common.DbConnectionStringBuilder();
builder["Data Source"] = "(local)";
builder["integrated Security"] = true;
builder["Initial Catalog"] = "AdventureWorks;NewValue=Bad";

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

data source=(local);integrated security=True;
initial catalog="AdventureWorks;NewValue=Bad"

Konstruktoren

DbConnectionStringBuilder()

Initialisiert eine neue Instanz der DbConnectionStringBuilder Klasse.

DbConnectionStringBuilder(Boolean)

Initialisiert eine neue Instanz der DbConnectionStringBuilder Klasse, optional mithilfe von ODBC-Regeln zum Anstellen von Werten.

Eigenschaften

BrowsableConnectionString

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die ConnectionString -Eigenschaft in Visual Studio-Designern sichtbar ist.

ConnectionString

Dient zum Abrufen oder Festlegen der Verbindungszeichenfolge, die dem DbConnectionStringBuilderzugeordnet ist.

Count

Ruft die aktuelle Anzahl der Schlüssel ab, die in der eigenschaft ConnectionString enthalten sind.

IsFixedSize

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

IsReadOnly

Ruft einen Wert ab, der angibt, ob die DbConnectionStringBuilder schreibgeschützt ist.

Item[String]

Dient zum Abrufen oder Festlegen des Werts, der dem angegebenen Schlüssel zugeordnet ist.

Keys

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

Values

Ruft eine ICollection ab, die die Werte in der DbConnectionStringBuilderenthält.

Methoden

Add(String, Object)

Fügt dem DbConnectionStringBuildereinen Eintrag mit dem angegebenen Schlüssel und Wert hinzu.

AppendKeyValuePair(StringBuilder, String, String, Boolean)

Bietet eine effiziente und sichere Möglichkeit zum Anfügen eines Schlüssels und Werts an ein vorhandenes StringBuilder-Objekt.

AppendKeyValuePair(StringBuilder, String, String)

Bietet eine effiziente und sichere Möglichkeit zum Anfügen eines Schlüssels und Werts an ein vorhandenes StringBuilder-Objekt.

Clear()

Löscht den Inhalt der DbConnectionStringBuilder Instanz.

ClearPropertyDescriptors()

Löscht die Auflistung von PropertyDescriptor -Objekten für die zugeordnete DbConnectionStringBuilder.

ContainsKey(String)

Bestimmt, ob die DbConnectionStringBuilder einen bestimmten Schlüssel enthält.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
EquivalentTo(DbConnectionStringBuilder)

Vergleicht die Verbindungsinformationen in diesem DbConnectionStringBuilder -Objekt mit den Verbindungsinformationen im angegebenen Objekt.

GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetProperties(Hashtable)

Füllt eine bereitgestellte Hashtable mit Informationen zu allen Eigenschaften dieses DbConnectionStringBuilder.

GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
Remove(String)

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

ShouldSerialize(String)

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

ToString()

Gibt die dieser DbConnectionStringBuilderzugeordnete Verbindungszeichenfolge zurück.

TryGetValue(String, Object)

Ruft einen Wert ab, der dem bereitgestellten Schlüssel aus diesem DbConnectionStringBuilderentspricht.

Explizite Schnittstellenimplementierungen

ICollection.CopyTo(Array, Int32)

Kopiert die Elemente des ICollection in einen Array, beginnend bei einem bestimmten Array Index.

ICollection.IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf die ICollection synchronisiert wird (Threadsicher).

ICollection.SyncRoot

Ruft ein Objekt ab, das zum Synchronisieren des Zugriffs auf die ICollectionverwendet werden kann.

ICustomTypeDescriptor.GetAttributes()

Gibt eine Auflistung von benutzerdefinierten Attributen für diese Instanz einer Komponente zurück.

ICustomTypeDescriptor.GetClassName()

Gibt den Klassennamen dieser Instanz einer Komponente zurück.

ICustomTypeDescriptor.GetComponentName()

Gibt den Namen dieser Instanz einer Komponente zurück.

ICustomTypeDescriptor.GetConverter()

Gibt einen Typkonverter für diese Instanz einer Komponente zurück.

ICustomTypeDescriptor.GetDefaultEvent()

Gibt das Standardereignis für diese Instanz einer Komponente zurück.

ICustomTypeDescriptor.GetDefaultProperty()

Gibt die Standardeigenschaft für diese Instanz einer Komponente zurück.

ICustomTypeDescriptor.GetEditor(Type)

Gibt einen Editor des angegebenen Typs für diese Instanz einer Komponente zurück.

ICustomTypeDescriptor.GetEvents()

Gibt die Ereignisse für diese Instanz einer Komponente zurück.

ICustomTypeDescriptor.GetEvents(Attribute[])

Gibt die Ereignisse für diese Instanz einer Komponente zurück, die das angegebene Attributarray als Filter verwendet.

ICustomTypeDescriptor.GetProperties()

Gibt die Eigenschaften für diese Instanz einer Komponente zurück.

ICustomTypeDescriptor.GetProperties(Attribute[])

Gibt die Eigenschaften für diese Instanz einer Komponente zurück, die das Attributarray als Filter verwendet.

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

Gibt ein Objekt zurück, das die durch den angegebenen Eigenschaftsdeskriptor beschriebene Eigenschaft enthält.

IDictionary.Add(Object, Object)

Fügt dem IDictionary-Objekt ein Element mit dem bereitgestellten Schlüssel und Wert hinzu.

IDictionary.Contains(Object)

Bestimmt, ob das IDictionary -Objekt ein Element mit dem angegebenen Schlüssel enthält.

IDictionary.GetEnumerator()

Gibt ein IDictionaryEnumerator -Objekt für das IDictionary -Objekt zurück.

IDictionary.IsFixedSize

Ruft einen Wert ab, der angibt, ob das IDictionary -Objekt eine feste Größe hat.

IDictionary.IsReadOnly

Ruft einen Wert ab, der angibt, ob die IDictionary schreibgeschützt ist.

IDictionary.Item[Object]

Ruft das Element mit dem angegebenen Schlüssel ab oder legt es fest.

IDictionary.Remove(Object)

Entfernt das Element mit dem angegebenen Schlüssel aus dem IDictionary -Objekt.

IEnumerable.GetEnumerator()

Gibt einen Enumerator zurück, der eine Auflistung durchläuft.

Erweiterungsmethoden

Cast<TResult>(IEnumerable)

Wandelt die Elemente eines IEnumerable in den angegebenen Typ um.

OfType<TResult>(IEnumerable)

Filtert die Elemente einer IEnumerable basierend auf einem angegebenen Typ.

AsParallel(IEnumerable)

Aktiviert die Parallelisierung einer Abfrage.

AsQueryable(IEnumerable)

Wandelt eine IEnumerable in eine IQueryableum.

Gilt für:

Weitere Informationen