Поделиться через


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 конструктору строго типизированного класса соединения. Это не обязательно; Код также мог бы создать отдельные экземпляры построителя строк подключения строго типизированного типа. В этом примере также анализируется существующая строка подключения и демонстрируется различные способы управления содержимым строки подключения.

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

Комментарии

Класс DbConnectionStringBuilder предоставляет базовый класс, из которого наследуются строго типизированные построители строк подключения (SqlConnectionStringBuilder, OleDbConnectionStringBuilderи т. д.). Построители строк подключения позволяют разработчикам программно создавать синтаксически правильные строки подключения, а также анализировать и перестроить существующие строки подключения.

DbConnectionStringBuilder определена как не зависящая от базы данных. Из-за добавления пространства имен System.Data.Common разработчикам требуется базовый класс, с помощью которого они могут программировать для создания строк подключения, которые могут работать с произвольной базой данных. Таким образом, класс DbConnectionStringBuilder позволяет пользователям назначать произвольные пары ключей и значений и передавать результирующую строку подключения строго типизированному поставщику. Все поставщики данных, включенные в состав .NET, предлагают строго типизированный класс, наследующий от DbConnectionStringBuilder: SqlConnectionStringBuilder, OracleConnectionStringBuilder, OdbcConnectionStringBuilderи OleDbConnectionStringBuilder.

Вы можете создавать, назначать и изменять строки подключения для любого произвольного поставщика. Для поставщиков, поддерживающих определенные пары "ключ-значение", построитель строк подключения предоставляет строго типизированные свойства, соответствующие известным парам. Для поставщиков, которым требуется возможность поддерживать неизвестные значения, можно также предоставлять произвольные пары ключей и значений.

Класс DbConnectionStringBuilder реализует интерфейс ICustomTypeDescriptor. Это означает, что класс работает с конструкторами Visual Studio во время разработки. Когда разработчики используют конструктор для создания строго типизированных наборов данных и строго типизированных подключений в Visual Studio, класс строго типизированного конструктора строк подключения отображает свойства, связанные с типом, а также конвертеры, которые могут сопоставлять общие значения известных ключей.

Если необходимо создать строки подключения в составе приложений, используйте класс DbConnectionStringBuilder или одну из строго типизированных производных для создания и изменения строк подключения. Класс DbConnectionStringBuilder также упрощает управление строками подключения, хранящимися в файле конфигурации приложения.

Строки подключения можно создать с помощью строго типизированного класса построителя строк подключения или класса DbConnectionStringBuilder. DbConnectionStringBuilder не проверяет наличие допустимых пар "ключ-значение". Поэтому при использовании этого класса можно создать недопустимые строки подключения. SqlConnectionStringBuilder поддерживает только пары "ключ-значение", поддерживаемые SQL Server; При попытке добавить недопустимые пары возникает исключение.

Метод Add и Item[] свойства обрабатывают случаи, когда плохой субъект пытается вставить вредоносные записи. Например, следующий код правильно экранирует пару вложенных ключей и значений:

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, Boolean)

Предоставляет эффективный и безопасный способ добавления ключа и значения к существующему объекту StringBuilder.

AppendKeyValuePair(StringBuilder, String, String)

Предоставляет эффективный и безопасный способ добавления ключа и значения к существующему объекту 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.

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

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

  • строки подключения в ADO.NET
  • обзора ADO.NET