DbConnectionStringBuilder Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет базовый класс для строго типизированных построителей строк подключения.
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
- Наследование
-
DbConnectionStringBuilder
- Производный
- Реализации
Примеры
Следующее консольное приложение создает две строки подключения: одну для базы данных Microsoft Jet и одну для базы данных SQL Server. В каждом случае код использует универсальный DbConnectionStringBuilder класс для создания строка подключения, а затем передает ConnectionString свойство экземпляра DbConnectionStringBuilder конструктору строго типизированного класса соединения. Это не требуется; Код также мог создавать отдельные строго типизированные экземпляры построителя строка подключения. В примере также анализируется существующий строка подключения и демонстрируются различные способы управления содержимым строка подключения.
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
Комментарии
Класс DbConnectionStringBuilder предоставляет базовый класс, от которого наследуются строго типизированные строка подключения построители (SqlConnectionStringBuilder, OleDbConnectionStringBuilderи т. д.). Построитель строка подключения позволяет разработчикам программно создавать синтаксически правильные строки подключения, а также анализировать и перестраивать существующие строки подключения.
Определен DbConnectionStringBuilder не зависящим от базы данных способом. Из-за добавления System.Data.Common пространства имен разработчикам требуется базовый класс, на основе которого они могут программировать, чтобы создавать строки подключения, которые могут работать с произвольной базой данных. Таким образомDbConnectionStringBuilder, класс позволяет пользователям назначать произвольные пары "ключ-значение" и передавать результирующий строка подключения строго типизированному поставщику. Все поставщики данных, включенные в состав платформа .NET Framework предоставляют строго типизированный класс, наследующий от DbConnectionStringBuilder: SqlConnectionStringBuilder, OracleConnectionStringBuilder, OdbcConnectionStringBuilderи OleDbConnectionStringBuilder.
Разработчик может создавать, назначать и изменять строки подключения для любого произвольного поставщика. Для поставщиков, поддерживающих определенные пары "ключ-значение", построитель строка подключения предоставляет строго типизированные свойства, соответствующие известным парам. Для поддержки поставщиков, которым требуется возможность поддержки неизвестных значений, разработчики также могут предоставлять произвольные пары "ключ-значение".
Класс DbConnectionStringBuilder реализует интерфейс ICustomTypeDescriptor. Это означает, что класс работает с конструкторами Visual Studio во время разработки. Когда разработчики используют конструктор для создания строго типизированных наборов данных и строго типизированных соединений в Visual Studio, строго типизированный класс построителя строка подключения отображает свойства, связанные с его типом, а также конвертеры, которые могут сопоставлять общие значения для известных ключей.
Разработчики, которые должны создавать строки подключения в составе приложений, могут использовать DbConnectionStringBuilder класс или один из его строго типизированных производных для создания и изменения строк подключения. Класс DbConnectionStringBuilder также упрощает управление строками подключения, хранящимися в файле конфигурации приложения.
Разработчики могут создавать строки подключения, используя либо строго типизированный класс построителя строка подключения, либо DbConnectionStringBuilder класс . Не DbConnectionStringBuilder проверяет наличие допустимых пар "ключ-значение". Поэтому с помощью этого класса можно создавать недопустимые строки соединения. поддерживает SqlConnectionStringBuilder только пары "ключ-значение", поддерживаемые SQL Server. При попытке добавить недопустимые пары возникнет исключение.
Метод и Item[] дескриптор Add свойства пытаются вставить вредоносные записи. Например, следующий код правильно экранирует вложенную пару "ключ-значение":
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";
Результатом является следующая строка подключения, в которой недопустимое значение обрабатывается безопасным образом:
data source=(local);integrated security=True;
initial catalog="AdventureWorks;NewValue=Bad"
Конструкторы
DbConnectionStringBuilder() |
Инициализирует новый экземпляр класса DbConnectionStringBuilder. |
DbConnectionStringBuilder(Boolean) |
Инициализирует новый экземпляр класса DbConnectionStringBuilder (необязательно) с использованием правил ODBC для значений в кавычках. |
Свойства
BrowsableConnectionString |
Возвращает или задает значение, указывающее, отображается ли свойство ConnectionString в конструкторах Visual Studio. |
ConnectionString |
Возвращает или задает строку подключения, связанную с этим DbConnectionStringBuilder. |
Count |
Возвращает текущее количество ключей, содержащихся в свойстве ConnectionString. |
IsFixedSize |
Получает значение, показывающее, имеет ли объект DbConnectionStringBuilder фиксированный размер. |
IsReadOnly |
Получает значение, указывающее, доступен ли объект DbConnectionStringBuilder только для чтения. |
Item[String] |
Возвращает или задает значение, связанное с указанным ключом. |
Keys |
Возвращает коллекцию ICollection, которая содержит ключи из DbConnectionStringBuilder. |
Values |
Получает ICollection, которая содержит значения в DbConnectionStringBuilder. |
Методы
Add(String, Object) |
Добавляет запись с указанными ключом и значением в DbConnectionStringBuilder. |
AppendKeyValuePair(StringBuilder, String, String) |
Обеспечивает эффективный и безопасный способ добавления ключа и значения в существующий объект StringBuilder. |
AppendKeyValuePair(StringBuilder, String, String, Boolean) |
Обеспечивает эффективный и безопасный способ добавления ключа и значения в существующий объект StringBuilder. |
Clear() |
Удаляет содержимое экземпляра DbConnectionStringBuilder. |
ClearPropertyDescriptors() |
Очищает коллекцию объектов PropertyDescriptor в связанном DbConnectionStringBuilder. |
ContainsKey(String) |
Определяет, содержит ли объект DbConnectionStringBuilder указанный ключ. |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
EquivalentTo(DbConnectionStringBuilder) |
Сравнивает сведения о подключении в этом объекте DbConnectionStringBuilder со сведениями о подключении в предоставленном объекте. |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetProperties(Hashtable) |
Заполняет указанный Hashtable сведениями обо всех свойствах данного DbConnectionStringBuilder. |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
Remove(String) |
Удаляет из экземпляра DbConnectionStringBuilder запись с указанным ключом. |
ShouldSerialize(String) |
Указывает, существует ли заданный ключ в этом экземпляре DbConnectionStringBuilder. |
ToString() |
Возвращает строку подключения, связанную с этим DbConnectionStringBuilder. |
TryGetValue(String, Object) |
Получает значение, соответствующее заданному ключу, из данного объекта DbConnectionStringBuilder. |
Явные реализации интерфейса
ICollection.CopyTo(Array, Int32) |
Копирует элементы коллекции ICollection в массив Array, начиная с указанного индекса массива Array. |
ICollection.IsSynchronized |
Возвращает значение, показывающее, является ли доступ к коллекции ICollection синхронизированным (потокобезопасным). |
ICollection.SyncRoot |
Получает объект, с помощью которого можно синхронизировать доступ к коллекции ICollection. |
ICustomTypeDescriptor.GetAttributes() |
Возвращает коллекцию настраиваемых атрибутов для этого экземпляра компонента. |
ICustomTypeDescriptor.GetClassName() |
Возвращает имя класса для этого экземпляра компонента. |
ICustomTypeDescriptor.GetComponentName() |
Возвращает имя этого экземпляра компонента. |
ICustomTypeDescriptor.GetConverter() |
Возвращает преобразователь типов для этого экземпляра компонента. |
ICustomTypeDescriptor.GetDefaultEvent() |
Возвращает событие по умолчанию для этого экземпляра компонента. |
ICustomTypeDescriptor.GetDefaultProperty() |
Возвращает свойство по умолчанию для этого экземпляра компонента. |
ICustomTypeDescriptor.GetEditor(Type) |
Возвращает редактор заданного типа для этого экземпляра компонента. |
ICustomTypeDescriptor.GetEvents() |
Возвращает события для этого экземпляра компонента. |
ICustomTypeDescriptor.GetEvents(Attribute[]) |
Возвращает события для этого экземпляра компонента, используя заданный массив атрибутов в качестве фильтра. |
ICustomTypeDescriptor.GetProperties() |
Возвращает свойства для этого экземпляра компонента. |
ICustomTypeDescriptor.GetProperties(Attribute[]) |
Возвращает свойства для этого экземпляра компонента, используя массив атрибутов в качестве фильтра. |
ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor) |
Возвращает объект, содержащий свойство, описываемое заданным дескриптором свойства. |
IDictionary.Add(Object, Object) |
Добавляет элемент с указанными ключом и значением в объект IDictionary. |
IDictionary.Contains(Object) |
Определяет, содержится ли элемент с указанным ключом в объекте IDictionary. |
IDictionary.GetEnumerator() |
Возвращает объект IDictionaryEnumerator для объекта IDictionary. |
IDictionary.IsFixedSize |
Получает значение, показывающее, имеет ли объект IDictionary фиксированный размер. |
IDictionary.IsReadOnly |
Получает значение, указывающее, является ли объект IDictionary доступным только для чтения. |
IDictionary.Item[Object] |
Возвращает или задает элемент с указанным ключом. |
IDictionary.Remove(Object) |
Удаляет элемент с указанным ключом из объекта IDictionary. |
IEnumerable.GetEnumerator() |
Возвращает перечислитель, который осуществляет итерацию по коллекции. |
Методы расширения
Cast<TResult>(IEnumerable) |
Приводит элементы объекта IEnumerable к заданному типу. |
OfType<TResult>(IEnumerable) |
Выполняет фильтрацию элементов объекта IEnumerable по заданному типу. |
AsParallel(IEnumerable) |
Позволяет осуществлять параллельный запрос. |
AsQueryable(IEnumerable) |
Преобразовывает коллекцию IEnumerable в объект IQueryable. |