DbConnectionStringBuilder Klasse

Definition

Stellt eine Basisklasse für stark typisierte 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 typisierten Verbindungsklasse. Dies ist nicht erforderlich; Der Code hätte auch einzelne stark typisierte Verbindungszeichenfolgen-Generatorinstanzen erstellt. Das Beispiel analysiert auch eine vorhandene Verbindungszeichenfolge und veranschaulicht verschiedene Möglichkeiten, den Inhalt der Verbindungszeichenfolge zu bearbeiten.

static void Main()
{
    DbConnectionStringBuilder builder =
        new DbConnectionStringBuilder();
    builder.ConnectionString = @"Data Source=c:\MyData\MyDb.mdb";
    builder.Add("Provider", "Microsoft.Jet.Oledb.4.0");
    builder.Add("Jet OLEDB:Database Password", "*******");
    builder.Add("Jet OLEDB:System Database",
        @"c:\MyData\Workgroup.mdb");
    // 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 may 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);user id=*******;" +
        "password=*******;initial catalog=AdventureWorks";
    builder["Server"] = ".";
    builder.Remove("User ID");

    // Note that calling Remove on a nonexistent item doesn't
    // throw an exception.
    builder.Remove("BadItem");

    // Setting the indexer adds the value if
    // necessary.
    builder["Integrated Security"] = true;
    builder.Remove("password");
    builder["User ID"] = "Hello";
    Console.WriteLine(builder.ConnectionString);

    Console.WriteLine("Press Enter to finish.");
    Console.ReadLine();
}
Sub Main()
    Dim builder As New DbConnectionStringBuilder()
    builder.ConnectionString = "Data Source=c:\MyData\MyDb.mdb"
    builder.Add("Provider", "Microsoft.Jet.Oledb.4.0")
    builder.Add("Jet OLEDB:Database Password", "*******")
    builder.Add("Jet OLEDB:System Database", _
        "c:\MyData\Workgroup.mdb")

    ' 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);user id=*******;" & _
        "password=*******;initial catalog=AdventureWorks"
    builder.Item("Server") = "."
    builder.Remove("User ID")

    ' Note that calling Remove on a nonexistent item doesn't
    ' throw an exception.
    builder.Remove("BadItem")

    ' The Item property is the default for the class, 
    ' and setting the Item property adds the value if 
    ' necessary.
    builder("Integrated Security") = True
    builder.Remove("password")
    builder.Item("User ID") = "Hello"
    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 typisierten Verbindungszeichenfolgen-Generatoren (SqlConnectionStringBuilder, OleDbConnectionStringBuilderusw.) abgeleitet werden. Mit den Verbindungszeichenfolgen-Generatoren können Entwickler programmgesteuert syntaktisch korrekte Verbindungszeichenfolgen erstellen und vorhandene Verbindungszeichenfolgen analysieren und neu erstellen.

wurde DbConnectionStringBuilder datenbankunabhängig definiert. Da der Namespace hinzugefügt wurde System.Data.Common , 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 typisierten Anbieter übergeben. Alle Datenanbieter, die als Teil der .NET Framework enthalten sind, stellen eine stark typisierte Klasse bereit, die von DbConnectionStringBuildererbt: SqlConnectionStringBuilder, OracleConnectionStringBuilder, OdbcConnectionStringBuilderund OleDbConnectionStringBuilder.

Der Entwickler kann Verbindungszeichenfolgen für beliebige Anbieter erstellen, zuweisen und bearbeiten. Für Anbieter, die bestimmte Schlüssel-Wert-Paare unterstützen, stellt der Verbindungszeichenfolgen-Generator stark typisierte Eigenschaften bereit, die den bekannten Paaren entsprechen. Um Anbieter zu unterstützen, die die Unterstützung unbekannter Werte erfordern, können Entwickler auch beliebige Schlüssel-Wert-Paare bereitstellen.

Die DbConnectionStringBuilder-Klasse implementiert die ICustomTypeDescriptor-Schnittstelle. Dies bedeutet, dass die Klasse zur Entwurfszeit mit Visual Studio-Designern funktioniert. Wenn Entwickler den Designer verwenden, um stark typisierte DataSets und stark typisierte Verbindungen in Visual Studio zu erstellen, zeigt die stark typisierte 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.

Entwickler, die Verbindungszeichenfolgen als Teil von Anwendungen erstellen müssen, können die DbConnectionStringBuilder -Klasse oder eine ihrer stark typisierten Ableitungen verwenden, um Verbindungszeichenfolgen zu erstellen und zu ändern. Die DbConnectionStringBuilder -Klasse erleichtert auch die Verwaltung von Verbindungszeichenfolgen, die in einer Anwendungskonfigurationsdatei gespeichert sind.

Entwickler können Verbindungszeichenfolgen entweder mithilfe einer stark typisierten Verbindungszeichenfolgen-Generatorklasse erstellen oder die DbConnectionStringBuilder -Klasse verwenden. Führt DbConnectionStringBuilder keine Überprüfungen auf gültige Schlüssel-Wert-Paare durch. Daher ist es mit dieser Klasse möglich, ungültige Verbindungszeichenfolgen zu erstellen. Unterstützt SqlConnectionStringBuilder 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 das -Methoden- als Item[] auch das Add Eigenschaftenhandle versucht, schädliche Einträge einzufügen. Mit dem folgenden Code wird beispielsweise das geschachtelte Schlüssel-Wert-Paar ordnungsgemäß mit Escapezeichen versehen:

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 sicher 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, wobei optional ODBC-Regeln zum Zitieren von Werten verwendet werden.

Eigenschaften

BrowsableConnectionString

Ruft einen Wert ab, der angibt, ob die ConnectionString-Eigenschaft in Visual Studio-Designern sichtbar ist, oder legt diesen Wert fest.

ConnectionString

Ruft die dem DbConnectionStringBuilder zugeordnete Verbindungszeichenfolge ab oder legt sie fest.

Count

Ruft die aktuelle Anzahl von Schlüsseln ab, die in der ConnectionString-Eigenschaft enthalten sind.

IsFixedSize

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

IsReadOnly

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

Item[String]

Ruft den Wert ab, der dem angegebenen Schlüssel zugeordnet ist, oder legt diesen fest.

Keys

Ruft eine ICollection ab, die die Schlüssel im DbConnectionStringBuilder enthält.

Values

Ruft ein ICollection ab, das die Werte im DbConnectionStringBuilder enthält.

Methoden

Add(String, Object)

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

AppendKeyValuePair(StringBuilder, String, String)

Bietet eine effiziente und sichere Möglichkeit, einen Schlüssel und Wert an ein vorhandenes StringBuilder-Objekt anzufügen.

AppendKeyValuePair(StringBuilder, String, String, Boolean)

Bietet eine effiziente und sichere Möglichkeit, einen Schlüssel und Wert an ein vorhandenes StringBuilder-Objekt anzufügen.

Clear()

Löscht den Inhalt der DbConnectionStringBuilder-Instanz.

ClearPropertyDescriptors()

Löscht die Auflistung von PropertyDescriptor-Objekten, die dem DbConnectionStringBuilder zugeordnet sind.

ContainsKey(String)

Stellt fest, ob der DbConnectionStringBuilder einen bestimmten Schlüssel enthält.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
EquivalentTo(DbConnectionStringBuilder)

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

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetProperties(Hashtable)

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

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des 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 diesem DbConnectionStringBuilder zugeordnete Verbindungszeichenfolge zurück.

TryGetValue(String, Object)

Ruft einen Wert ab, der dem von diesem DbConnectionStringBuilder bereitgestellten Schlüssel entspricht.

Explizite Schnittstellenimplementierungen

ICollection.CopyTo(Array, Int32)

Kopiert die Elemente der ICollection in ein Array, beginnend bei einem bestimmten Array-Index.

ICollection.IsSynchronized

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

ICollection.SyncRoot

Ruft ein Objekt ab, mit dem der Zugriff auf ICollection synchronisiert werden kann.

ICustomTypeDescriptor.GetAttributes()

Gibt eine Auflistung benutzerdefinierter Attribute 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, wobei das angegebene Attributarray als Filter verwendet wird.

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, wobei das Attributarray als Filter verwendet wird.

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

Gibt ein Objekt zurück, das die Eigenschaft enthält, die durch den Eigenschaftendeskriptor angegeben ist.

IDictionary.Add(Object, Object)

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

IDictionary.Contains(Object)

Ermittelt, 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 das IDictionary schreibgeschützt ist.

IDictionary.Item[Object]

Ruft das Element mit dem angegebenen Schlüssel ab oder legt dieses 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 eines IEnumerable anhand eines angegebenen Typs

AsParallel(IEnumerable)

Ermöglicht die Parallelisierung einer Abfrage.

AsQueryable(IEnumerable)

Konvertiert einen IEnumerable in einen IQueryable.

Gilt für:

Weitere Informationen