DbConnectionStringBuilder Класс

Определение

Предоставляет базовый класс для строго типизированных построителей строк подключения.Provides a base class for strongly typed connection string builders.

public ref class DbConnectionStringBuilder : System::Collections::IDictionary, System::ComponentModel::ICustomTypeDescriptor
public class DbConnectionStringBuilder : System.Collections.IDictionary, System.ComponentModel.ICustomTypeDescriptor
type DbConnectionStringBuilder = class
    interface IDictionary
    interface ICustomTypeDescriptor
    interface ICollection
    interface IEnumerable
Public Class DbConnectionStringBuilder
Implements ICustomTypeDescriptor, IDictionary
Наследование
DbConnectionStringBuilder
Производный
Реализации

Примеры

Следующее консольное приложение создает две строки подключения: одну для базы данных Microsoft Jet и одну для SQL Server базы данных.The following console application builds two connection strings, one for a Microsoft Jet database, and one for a SQL Server database. В каждом случае код использует универсальный DbConnectionStringBuilder класс для создания строки подключения, а затем ConnectionString передает свойство DbConnectionStringBuilder экземпляра в конструктор класса соединения строгого типа.In each case, the code uses a generic DbConnectionStringBuilder class to create the connection string, and then passes the ConnectionString property of the DbConnectionStringBuilder instance to the constructor of the strongly type connection class. Это не является обязательным; в коде также могут быть созданы отдельные строго типизированные экземпляры построителя строк подключения.This is not required; the code could also have created individual strongly typed connection string builder instances. В примере также анализируется существующая строка подключения и демонстрируются различные способы управления содержимым строки подключения.The example also parses an existing connection string, and demonstrates various ways of manipulating the connection string's contents.

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

Комментарии

Класс предоставляет базовый класс, на основе которого создаются строго типизированные построители строк соединенияSqlConnectionStringBuilder( OleDbConnectionStringBuilder, и т. д.). DbConnectionStringBuilderThe DbConnectionStringBuilder class provides the base class from which the strongly typed connection string builders (SqlConnectionStringBuilder, OleDbConnectionStringBuilder, and so on) derive. Построители строк подключения позволяют разработчикам программно создавать синтаксически правильные строки подключения, а также анализировать и перестраивать существующие строки подключения.The connection string builders let developers programmatically create syntactically correct connection strings, and parse and rebuild existing connection strings.

DbConnectionStringBuilder Определено в базе данных без учета регистра.The DbConnectionStringBuilder has been defined in a database-agnostic manner. Из-за добавления System.Data.Common пространства имен разработчикам требуется базовый класс, с которым они могут программировать для создания строк подключения, которые могут работать с произвольной базой данных.Because of the addition of the System.Data.Common namespace, developers require a base class against which they can program in order to build connection strings that can work against an arbitrary database. Таким образом, DbConnectionStringBuilder класс позволяет пользователям назначать произвольные пары "ключ-значение" и передавать результирующую строку подключения строго типизированному поставщику.Therefore, the DbConnectionStringBuilder class lets users assign arbitrary key/value pairs and pass the resulting connection string to a strongly typed provider. Все поставщики данных, включенные в состав .NET Framework, предоставляют строго типизированный класс, наследующий от DbConnectionStringBuilder: SqlConnectionStringBuilder, OracleConnectionStringBuilder, OdbcConnectionStringBuilderи OleDbConnectionStringBuilder.All the data providers that are included as part of the .NET Framework provide a strongly typed class that inherits from DbConnectionStringBuilder: SqlConnectionStringBuilder, OracleConnectionStringBuilder, OdbcConnectionStringBuilder, and OleDbConnectionStringBuilder.

Разработчик может создавать, назначать и изменять строки подключения для любого произвольного поставщика.The developer can build, assign, and edit connection strings for any arbitrary provider. Для поставщиков, поддерживающих определенные пары "ключ-значение", Построитель строк подключения предоставляет строго типизированные свойства, соответствующие известным парам.For providers that support specific key/value pairs, the connection string builder provides strongly typed properties corresponding to the known pairs. Для поддержки поставщиков, которым требуется возможность поддержки неизвестных значений, разработчики также могут предоставлять произвольные пары "ключ-значение".In order to support providers that require the ability to support unknown values, developers can also supply arbitrary key/value pairs.

Класс DbConnectionStringBuilder реализует интерфейс ICustomTypeDescriptor.The DbConnectionStringBuilder class implements the ICustomTypeDescriptor interface. Это означает, что класс работает с Visual Studio Designers во время разработки.This means that the class works with Visual Studio designers at design time. Когда разработчики используют конструктор для создания строго типизированных наборов данных и строго типизированных соединений в Visual Studio, строго типизированный класс построителя строк подключения будет отображать свойства, связанные с его типом, а также будет иметь конвертеры, которые могут Сопоставьте общие значения для известных ключей.When developers use the designer to build strongly typed DataSets and strongly typed connections within Visual Studio, the strongly typed connection string builder class will display the properties associated with its type and will also have converters that can map common values for known keys.

Разработчики, которым требуется создавать строки подключения в составе приложений, могут использовать DbConnectionStringBuilder класс или один из его строго типизированных производных классов для создания и изменения строк подключения.Developers needing to create connection strings as part of applications can use the DbConnectionStringBuilder class or one of its strongly typed derivatives to build and modify connection strings. DbConnectionStringBuilder Класс также упрощает управление строками подключения, хранящимися в файле конфигурации приложения.The DbConnectionStringBuilder class also makes it easy to manage connection strings stored in an application configuration file.

Разработчики могут создавать строки подключения с помощью строго типизированного класса построителя строк подключения или использовать DbConnectionStringBuilder класс.Developers can create connection strings using either a strongly typed connection string builder class, or they can use the DbConnectionStringBuilder class. Не DbConnectionStringBuilder выполняет проверки для допустимых пар "ключ-значение".The DbConnectionStringBuilder performs no checks for valid key/value pairs. Поэтому с помощью этого класса можно создавать недопустимые строки соединения.Therefore, it is possible using this class to create invalid connection strings. SqlConnectionStringBuilder Поддерживает только пары "ключ-значение", поддерживаемые SQL Server; при попытке добавить недопустимые пары будет создано исключение.The SqlConnectionStringBuilder supports only key/value pairs that are supported by SQL Server; trying to add invalid pairs will throw an exception.

Add Метод иItem[String] обработчик свойств пытаются вставить вредоносные записи.Both the Add method and Item[String] property handle tries to insert malicious entries. Например, следующий код корректно переключает вложенную пару "ключ-значение":For example, the following code correctly escapes the nested key/value pair:

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

Результатом является следующая строка подключения, в которой недопустимое значение обрабатывается безопасным образом:The result is the following connection string that handles the invalid value in a safe manner:

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

Конструкторы

DbConnectionStringBuilder()

Инициализирует новый экземпляр класса DbConnectionStringBuilder.Initializes a new instance of the DbConnectionStringBuilder class.

DbConnectionStringBuilder(Boolean)

Инициализирует новый экземпляр класса DbConnectionStringBuilder (необязательно) с использованием правил ODBC для значений в кавычках.Initializes a new instance of the DbConnectionStringBuilder class, optionally using ODBC rules for quoting values.

Свойства

BrowsableConnectionString

Возвращает или задает значение, указывающее, отображается ли свойство ConnectionString в конструкторах Visual Studio.Gets or sets a value that indicates whether the ConnectionString property is visible in Visual Studio designers.

ConnectionString

Возвращает или задает строку подключения, связанную с этим DbConnectionStringBuilder.Gets or sets the connection string associated with the DbConnectionStringBuilder.

Count

Возвращает текущее количество ключей, содержащихся в свойстве ConnectionString.Gets the current number of keys that are contained within the ConnectionString property.

IsFixedSize

Возвращает значение, показывающее, имеет ли объект DbConnectionStringBuilder фиксированный размер.Gets a value that indicates whether the DbConnectionStringBuilder has a fixed size.

IsReadOnly

Возвращает значение, которое определяет, является ли коллекция DbConnectionStringBuilder доступной только для чтения.Gets a value that indicates whether the DbConnectionStringBuilder is read-only.

Item[String]

Возвращает или задает значение, связанное с указанным ключом.Gets or sets the value associated with the specified key.

Keys

Возвращает коллекцию ICollection, которая содержит ключи из DbConnectionStringBuilder.Gets an ICollection that contains the keys in the DbConnectionStringBuilder.

Values

Возвращает коллекцию ICollection, которая содержит значения в DbConnectionStringBuilder.Gets an ICollection that contains the values in the DbConnectionStringBuilder.

Методы

Add(String, Object)

Добавляет запись с указанными ключом и значением в DbConnectionStringBuilder.Adds an entry with the specified key and value into the DbConnectionStringBuilder.

AppendKeyValuePair(StringBuilder, String, String)

Обеспечивает эффективный и безопасный способ добавления ключа и значения в существующий объект StringBuilder.Provides an efficient and safe way to append a key and value to an existing StringBuilder object.

AppendKeyValuePair(StringBuilder, String, String, Boolean)

Обеспечивает эффективный и безопасный способ добавления ключа и значения в существующий объект StringBuilder.Provides an efficient and safe way to append a key and value to an existing StringBuilder object.

Clear()

Удаляет содержимое экземпляра DbConnectionStringBuilder.Clears the contents of the DbConnectionStringBuilder instance.

ClearPropertyDescriptors()

Очищает коллекцию объектов PropertyDescriptor в связанном DbConnectionStringBuilder.Clears the collection of PropertyDescriptor objects on the associated DbConnectionStringBuilder.

ContainsKey(String)

Определяет, содержит ли объект DbConnectionStringBuilder указанный ключ.Determines whether the DbConnectionStringBuilder contains a specific key.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
EquivalentTo(DbConnectionStringBuilder)

Сравнивает сведения о подключении в этом объекте DbConnectionStringBuilder со сведениями о подключении в предоставленном объекте.Compares the connection information in this DbConnectionStringBuilder object with the connection information in the supplied object.

GetHashCode()

Служит в качестве хэш-функции по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetProperties(Hashtable)

Заполняет указанный Hashtable сведениями обо всех свойствах данного DbConnectionStringBuilder.Fills a supplied Hashtable with information about all the properties of this DbConnectionStringBuilder.

GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
Remove(String)

Удаляет из экземпляра DbConnectionStringBuilder запись с указанным ключом.Removes the entry with the specified key from the DbConnectionStringBuilder instance.

ShouldSerialize(String)

Указывает, существует ли заданный ключ в этом экземпляре DbConnectionStringBuilder.Indicates whether the specified key exists in this DbConnectionStringBuilder instance.

ToString()

Возвращает строку подключения, связанную с этим DbConnectionStringBuilder.Returns the connection string associated with this DbConnectionStringBuilder.

TryGetValue(String, Object)

Получает значение, соответствующее заданному ключу, из данного объекта DbConnectionStringBuilder.Retrieves a value corresponding to the supplied key from this DbConnectionStringBuilder.

Явные реализации интерфейса

ICollection.CopyTo(Array, Int32)

Копирует элементы коллекции ICollection в массив Array, начиная с указанного индекса массива Array.Copies the elements of the ICollection to an Array, starting at a particular Array index.

ICollection.IsSynchronized

Возвращает значение, показывающее, является ли доступ к коллекции ICollection синхронизированным (потокобезопасным).Gets a value indicating whether access to the ICollection is synchronized (thread safe).

ICollection.SyncRoot

Получает объект, с помощью которого можно синхронизировать доступ к коллекции ICollection.Gets an object that can be used to synchronize access to the ICollection.

ICustomTypeDescriptor.GetAttributes()

Возвращает коллекцию настраиваемых атрибутов для этого экземпляра компонента.Returns a collection of custom attributes for this instance of a component.

ICustomTypeDescriptor.GetClassName()

Возвращает имя класса для этого экземпляра компонента.Returns the class name of this instance of a component.

ICustomTypeDescriptor.GetComponentName()

Возвращает имя этого экземпляра компонента.Returns the name of this instance of a component.

ICustomTypeDescriptor.GetConverter()

Возвращает преобразователь типа для этого экземпляра компонента.Returns a type converter for this instance of a component.

ICustomTypeDescriptor.GetDefaultEvent()

Возвращает событие по умолчанию для этого экземпляра компонента.Returns the default event for this instance of a component.

ICustomTypeDescriptor.GetDefaultProperty()

Возвращает свойство по умолчанию для этого экземпляра компонента.Returns the default property for this instance of a component.

ICustomTypeDescriptor.GetEditor(Type)

Возвращает редактор заданного типа для этого экземпляра компонента.Returns an editor of the specified type for this instance of a component.

ICustomTypeDescriptor.GetEvents()

Возвращает события для этого экземпляра компонента.Returns the events for this instance of a component.

ICustomTypeDescriptor.GetEvents(Attribute[])

Возвращает события для этого экземпляра компонента, используя заданный массив атрибутов в качестве фильтра.Returns the events for this instance of a component using the specified attribute array as a filter.

ICustomTypeDescriptor.GetProperties()

Возвращает свойства для этого экземпляра компонента.Returns the properties for this instance of a component.

ICustomTypeDescriptor.GetProperties(Attribute[])

Возвращает свойства для этого экземпляра компонента, используя массив атрибутов в качестве фильтра.Returns the properties for this instance of a component using the attribute array as a filter.

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

Возвращает объект, содержащий свойство, описываемое заданным дескриптором свойства.Returns an object that contains the property described by the specified property descriptor.

IDictionary.Add(Object, Object)

Добавляет элемент с указанными ключом и значением в объект IDictionary.Adds an element with the provided key and value to the IDictionary object.

IDictionary.Contains(Object)

Определяет, содержится ли элемент с указанным ключом в объекте IDictionary.Determines whether the IDictionary object contains an element with the specified key.

IDictionary.GetEnumerator()

Возвращает объект IDictionaryEnumerator для объекта IDictionary.Returns an IDictionaryEnumerator object for the IDictionary object.

IDictionary.IsFixedSize
IDictionary.IsReadOnly
IDictionary.Item[Object]

Возвращает или задает элемент с указанным ключом.Gets or sets the element with the specified key.

IDictionary.Remove(Object)

Удаляет элемент с указанным ключом из объекта IDictionary.Removes the element with the specified key from the IDictionary object.

IEnumerable.GetEnumerator()

Возвращает перечислитель, который осуществляет итерацию по коллекции.Returns an enumerator that iterates through a collection.

Методы расширения

Cast<TResult>(IEnumerable)

Приводит элементы объекта IEnumerable к заданному типу.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Выполняет фильтрацию элементов объекта IEnumerable по заданному типу.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Позволяет осуществлять параллельный запрос.Enables parallelization of a query.

AsQueryable(IEnumerable)

Преобразовывает коллекцию IEnumerable в объект IQueryable.Converts an IEnumerable to an IQueryable.

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

Дополнительно