Udostępnij za pośrednictwem


DbConnectionStringBuilder Klasa

Definicja

Udostępnia klasę bazową dla silnie typiowanych konstruktorów parametrów połączenia.

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
Dziedziczenie
DbConnectionStringBuilder
Pochodne
Implementuje

Przykłady

Poniższa aplikacja konsolowa tworzy dwa parametry połączenia, jeden dla bazy danych Microsoft Jet i jeden dla bazy danych programu SQL Server. W każdym przypadku kod używa klasy ogólnego DbConnectionStringBuilder do utworzenia parametrów połączenia, a następnie przekazuje właściwość ConnectionString wystąpienia DbConnectionStringBuilder konstruktorowi silnie typizowanej klasy połączenia. Nie jest to wymagane; kod mógł również utworzyć pojedyncze wystąpienia konstruktora parametrów połączenia silnie typizowane. Przykład analizuje również istniejące parametry połączenia i demonstruje różne sposoby manipulowania zawartością parametrów połączenia.

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

Uwagi

Klasa DbConnectionStringBuilder udostępnia klasę bazową, z której pochodzą silnie typizowane konstruktory parametrów połączenia (SqlConnectionStringBuilder, OleDbConnectionStringBuilderitd.). Konstruktory parametrów połączenia umożliwiają deweloperom programowe tworzenie składniowo poprawnych parametrów połączenia oraz analizowanie i ponowne kompilowanie istniejących parametrów połączenia.

DbConnectionStringBuilder został zdefiniowany w sposób niezależny od bazy danych. Ze względu na dodanie System.Data.Common przestrzeni nazw deweloperzy wymagają klasy bazowej, względem której mogą programować w celu utworzenia parametrów połączenia, które mogą działać względem dowolnej bazy danych. W związku z tym klasa DbConnectionStringBuilder umożliwia użytkownikom przypisywanie dowolnych par klucz/wartość i przekazywanie wynikowych parametrów połączenia do silnie typizowanego dostawcy. Wszyscy dostawcy danych, którzy są dołączani w ramach platformy .NET, oferują silnie typizowana klasę, która dziedziczy z DbConnectionStringBuilder: SqlConnectionStringBuilder, OracleConnectionStringBuilder, OdbcConnectionStringBuilderi OleDbConnectionStringBuilder.

Parametry połączenia można tworzyć, przypisywać i edytować dla dowolnego dostawcy. W przypadku dostawców, którzy obsługują określone pary klucz/wartość, konstruktor parametrów połączenia zapewnia silnie typizowane właściwości odpowiadające znanym parom. W przypadku dostawców, którzy wymagają możliwości obsługi nieznanych wartości, można również podać dowolne pary klucz/wartość.

Klasa DbConnectionStringBuilder implementuje interfejs ICustomTypeDescriptor. Oznacza to, że klasa współpracuje z projektantami programu Visual Studio w czasie projektowania. Gdy deweloperzy używają projektanta do tworzenia silnie typiowanych zestawów danych i silnie typiowanych połączeń w programie Visual Studio, silnie typizowane parametry połączenia klasy konstruktora wyświetla właściwości skojarzone z jego typem, a także konwertery, które mogą mapować typowe wartości dla znanych kluczy.

Jeśli musisz utworzyć parametry połączenia w ramach aplikacji, użyj klasy DbConnectionStringBuilder lub jednego z silnie typionych pochodnych, aby skompilować i zmodyfikować parametry połączenia. Klasa DbConnectionStringBuilder ułatwia również zarządzanie parametrami połączenia przechowywanymi w pliku konfiguracji aplikacji.

Parametry połączenia można tworzyć przy użyciu silnie typizowanej klasy konstruktora parametrów połączenia lub klasy DbConnectionStringBuilder. DbConnectionStringBuilder nie sprawdza prawidłowych par klucz/wartość. W związku z tym podczas korzystania z tej klasy można utworzyć nieprawidłowe parametry połączenia. SqlConnectionStringBuilder obsługuje tylko pary klucz/wartość obsługiwane przez program SQL Server; Próba dodania nieprawidłowych par zgłosi wyjątek.

Zarówno metoda Add, jak i właściwość Item[] obsługują przypadki, w których zły aktor próbuje wstawić złośliwe wpisy. Na przykład poniższy kod poprawnie unika zagnieżdżonej pary klucz/wartość:

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

Wynikiem są następujące parametry połączenia, które obsługują nieprawidłową wartość w bezpieczny sposób:

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

Konstruktory

DbConnectionStringBuilder()

Inicjuje nowe wystąpienie klasy DbConnectionStringBuilder.

DbConnectionStringBuilder(Boolean)

Inicjuje nowe wystąpienie klasy DbConnectionStringBuilder, opcjonalnie przy użyciu reguł ODBC do cytowania wartości.

Właściwości

BrowsableConnectionString

Pobiera lub ustawia wartość wskazującą, czy właściwość ConnectionString jest widoczna dla projektantów programu Visual Studio.

ConnectionString

Pobiera lub ustawia parametry połączenia skojarzone z DbConnectionStringBuilder.

Count

Pobiera bieżącą liczbę kluczy zawartych we właściwości ConnectionString.

IsFixedSize

Pobiera wartość wskazującą, czy DbConnectionStringBuilder ma stały rozmiar.

IsReadOnly

Pobiera wartość wskazującą, czy DbConnectionStringBuilder jest tylko do odczytu.

Item[String]

Pobiera lub ustawia wartość skojarzona z określonym kluczem.

Keys

Pobiera ICollection, który zawiera klucze w DbConnectionStringBuilder.

Values

Pobiera ICollection, który zawiera wartości w DbConnectionStringBuilder.

Metody

Add(String, Object)

Dodaje wpis z określonym kluczem i wartością do DbConnectionStringBuilder.

AppendKeyValuePair(StringBuilder, String, String, Boolean)

Zapewnia wydajny i bezpieczny sposób dołączania klucza i wartości do istniejącego obiektu StringBuilder.

AppendKeyValuePair(StringBuilder, String, String)

Zapewnia wydajny i bezpieczny sposób dołączania klucza i wartości do istniejącego obiektu StringBuilder.

Clear()

Czyści zawartość wystąpienia DbConnectionStringBuilder.

ClearPropertyDescriptors()

Czyści kolekcję obiektów PropertyDescriptor na skojarzonym DbConnectionStringBuilder.

ContainsKey(String)

Określa, czy DbConnectionStringBuilder zawiera określony klucz.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.

(Odziedziczone po Object)
EquivalentTo(DbConnectionStringBuilder)

Porównuje informacje o połączeniu w tym obiekcie DbConnectionStringBuilder z informacjami o połączeniu w podanym obiekcie.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetProperties(Hashtable)

Wypełnia podaną Hashtable informacjami o wszystkich właściwościach tego DbConnectionStringBuilder.

GetType()

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Object.

(Odziedziczone po Object)
Remove(String)

Usuwa wpis z określonym kluczem z wystąpienia DbConnectionStringBuilder.

ShouldSerialize(String)

Wskazuje, czy określony klucz istnieje w tym wystąpieniu DbConnectionStringBuilder.

ToString()

Zwraca parametry połączenia skojarzone z tym DbConnectionStringBuilder.

TryGetValue(String, Object)

Pobiera wartość odpowiadającą podanemu kluczowi z tego DbConnectionStringBuilder.

Jawne implementacje interfejsu

ICollection.CopyTo(Array, Int32)

Kopiuje elementy ICollection do Array, począwszy od określonego indeksu Array.

ICollection.IsSynchronized

Pobiera wartość wskazującą, czy dostęp do ICollection jest synchronizowany (bezpieczny wątek).

ICollection.SyncRoot

Pobiera obiekt, który może służyć do synchronizowania dostępu do ICollection.

ICustomTypeDescriptor.GetAttributes()

Zwraca kolekcję atrybutów niestandardowych dla tego wystąpienia składnika.

ICustomTypeDescriptor.GetClassName()

Zwraca nazwę klasy tego wystąpienia składnika.

ICustomTypeDescriptor.GetComponentName()

Zwraca nazwę tego wystąpienia składnika.

ICustomTypeDescriptor.GetConverter()

Zwraca konwerter typów dla tego wystąpienia składnika.

ICustomTypeDescriptor.GetDefaultEvent()

Zwraca zdarzenie domyślne dla tego wystąpienia składnika.

ICustomTypeDescriptor.GetDefaultProperty()

Zwraca właściwość domyślną dla tego wystąpienia składnika.

ICustomTypeDescriptor.GetEditor(Type)

Zwraca edytor określonego typu dla tego wystąpienia składnika.

ICustomTypeDescriptor.GetEvents()

Zwraca zdarzenia dla tego wystąpienia składnika.

ICustomTypeDescriptor.GetEvents(Attribute[])

Zwraca zdarzenia dla tego wystąpienia składnika przy użyciu określonej tablicy atrybutów jako filtru.

ICustomTypeDescriptor.GetProperties()

Zwraca właściwości tego wystąpienia składnika.

ICustomTypeDescriptor.GetProperties(Attribute[])

Zwraca właściwości tego wystąpienia składnika przy użyciu tablicy atrybutów jako filtru.

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

Zwraca obiekt, który zawiera właściwość opisaną przez określony deskryptor właściwości.

IDictionary.Add(Object, Object)

Dodaje element z podanym kluczem i wartością do obiektu IDictionary.

IDictionary.Contains(Object)

Określa, czy obiekt IDictionary zawiera element z określonym kluczem.

IDictionary.GetEnumerator()

Zwraca obiekt IDictionaryEnumerator dla obiektu IDictionary.

IDictionary.IsFixedSize

Pobiera wartość wskazującą, czy obiekt IDictionary ma stały rozmiar.

IDictionary.IsReadOnly

Pobiera wartość wskazującą, czy IDictionary jest tylko do odczytu.

IDictionary.Item[Object]

Pobiera lub ustawia element przy użyciu określonego klucza.

IDictionary.Remove(Object)

Usuwa element z określonym kluczem z obiektu IDictionary.

IEnumerable.GetEnumerator()

Zwraca moduł wyliczający, który iteruje za pośrednictwem kolekcji.

Metody rozszerzania

Cast<TResult>(IEnumerable)

Rzutuje elementy IEnumerable do określonego typu.

OfType<TResult>(IEnumerable)

Filtruje elementy IEnumerable na podstawie określonego typu.

AsParallel(IEnumerable)

Umożliwia równoległość zapytania.

AsQueryable(IEnumerable)

Konwertuje IEnumerable na IQueryable.

Dotyczy

Zobacz też