DbConnectionStringBuilder Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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. |