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
Производный
Реализации

Примеры

Следующее консольное приложение создает две строки подключения: одну для базы данных Майкрософт 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.

Применяется к

См. также раздел