DbConnectionStringBuilder Classe

Definição

Fornece uma classe base para construtores de cadeia de conexão fortemente tipados.Provides a base class for strongly typed connection string builders.

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
type DbConnectionStringBuilder = class
    interface IDictionary
    interface ICustomTypeDescriptor
    interface ICollection
    interface IEnumerable
Public Class DbConnectionStringBuilder
Implements IDictionary
Public Class DbConnectionStringBuilder
Implements ICustomTypeDescriptor, IDictionary
Herança
DbConnectionStringBuilder
Derivado
Implementações

Exemplos

O aplicativo de console a seguir cria duas cadeias de conexão, uma para um banco de dados do Microsoft Jet e outra para um banco de dados SQL Server.The following console application builds two connection strings, one for a Microsoft Jet database, and one for a SQL Server database. Em cada caso, o código usa uma classe DbConnectionStringBuilder genérica para criar a cadeia de conexão e, em seguida, passa a propriedade ConnectionString da instância DbConnectionStringBuilder para o construtor da classe de conexão fortemente tipada.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 typed connection class. Isso não é necessário; o código também poderia ter criado instâncias individuais do construtor de cadeias de conexão com rigidez de tipos.This is not required; the code could also have created individual strongly typed connection string builder instances. O exemplo também analisa uma cadeia de conexão existente e demonstra várias maneiras de manipular o conteúdo da cadeia de conexão.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

Comentários

A classe DbConnectionStringBuilder fornece a classe base da qual os construtores de cadeia de conexão com rigidez de tipos (SqlConnectionStringBuilder, OleDbConnectionStringBuildere assim por diante) derivam.The DbConnectionStringBuilder class provides the base class from which the strongly typed connection string builders (SqlConnectionStringBuilder, OleDbConnectionStringBuilder, and so on) derive. Os construtores de cadeia de conexão permitem que os desenvolvedores criem cadeias de conexão sintaticamente corretas e analisem e reconstruam cadeias de conexão existentes.The connection string builders let developers programmatically create syntactically correct connection strings, and parse and rebuild existing connection strings.

O DbConnectionStringBuilder foi definido de maneira independente de banco de dados.The DbConnectionStringBuilder has been defined in a database-agnostic manner. Devido à adição do namespace de System.Data.Common, os desenvolvedores exigem uma classe base na qual eles podem programar para criar cadeias de conexão que podem funcionar em um banco de dados arbitrário.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. Portanto, a classe DbConnectionStringBuilder permite que os usuários atribuam pares arbitrários de chave/valor e passem a cadeia de conexão resultante para um provedor fortemente tipado.Therefore, the DbConnectionStringBuilder class lets users assign arbitrary key/value pairs and pass the resulting connection string to a strongly typed provider. Todos os provedores de dados incluídos como parte do .NET Framework fornecem uma classe fortemente tipada que herda de DbConnectionStringBuilder: SqlConnectionStringBuilder, OracleConnectionStringBuilder, OdbcConnectionStringBuildere 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.

O desenvolvedor pode criar, atribuir e editar cadeias de conexão para qualquer provedor arbitrário.The developer can build, assign, and edit connection strings for any arbitrary provider. Para provedores que dão suporte a pares de chave/valor específicos, o construtor de cadeias de conexão fornece propriedades fortemente tipadas correspondentes aos pares conhecidos.For providers that support specific key/value pairs, the connection string builder provides strongly typed properties corresponding to the known pairs. Para oferecer suporte a provedores que exigem a capacidade de dar suporte a valores desconhecidos, os desenvolvedores também podem fornecer pares de chave/valor arbitrários.In order to support providers that require the ability to support unknown values, developers can also supply arbitrary key/value pairs.

A classe DbConnectionStringBuilder implementa a interface ICustomTypeDescriptor.The DbConnectionStringBuilder class implements the ICustomTypeDescriptor interface. Isso significa que a classe funciona com designers do Visual Studio em tempo de design.This means that the class works with Visual Studio designers at design time. Quando os desenvolvedores usam o designer para criar conjuntos de linhas fortemente tipadas e conexões com rigidez de tipos no Visual Studio, a classe de construtor de cadeias de conexão com rigidez de tipos exibirá as propriedades associadas ao seu tipo e também conterá conversores que possam Mapeie valores comuns para chaves conhecidas.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.

Os desenvolvedores que precisam criar cadeias de conexão como parte dos aplicativos podem usar a classe DbConnectionStringBuilder ou uma de suas derivações fortemente tipadas para criar e modificar cadeias de conexão.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. A classe DbConnectionStringBuilder também facilita o gerenciamento de cadeias de conexão armazenadas em um arquivo de configuração de aplicativo.The DbConnectionStringBuilder class also makes it easy to manage connection strings stored in an application configuration file.

Os desenvolvedores podem criar cadeias de conexão usando uma classe de construtor de cadeias de conexão com rigidez de tipos ou podem usar a classe DbConnectionStringBuilder.Developers can create connection strings using either a strongly typed connection string builder class, or they can use the DbConnectionStringBuilder class. O DbConnectionStringBuilder não executa nenhuma verificação para pares de chave/valor válidos.The DbConnectionStringBuilder performs no checks for valid key/value pairs. Portanto, é possível usar essa classe para criar cadeias de conexão inválidas.Therefore, it is possible using this class to create invalid connection strings. O SqlConnectionStringBuilder dá suporte apenas a pares de chave/valor que são suportados pelo SQL Server; a tentativa de adicionar pares inválidos gerará uma exceção.The SqlConnectionStringBuilder supports only key/value pairs that are supported by SQL Server; trying to add invalid pairs will throw an exception.

O método Add e o identificador de propriedade Item[String] tentam inserir entradas mal-intencionadas.Both the Add method and Item[String] property handle tries to insert malicious entries. Por exemplo, o código a seguir escapa corretamente o par de chave/valor aninhado: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";

O resultado é a seguinte cadeia de conexão que manipula o valor inválido de maneira segura: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"

Construtores

DbConnectionStringBuilder()

Inicializa uma nova instância da classe DbConnectionStringBuilder.Initializes a new instance of the DbConnectionStringBuilder class.

DbConnectionStringBuilder(Boolean)

Inicializa uma nova instância da classe DbConnectionStringBuilder, opcionalmente usando regras ODBC para delimitar valores.Initializes a new instance of the DbConnectionStringBuilder class, optionally using ODBC rules for quoting values.

Propriedades

BrowsableConnectionString

Obtém ou define um valor que indica se a propriedade ConnectionString é visível nos designers do Visual Studio.Gets or sets a value that indicates whether the ConnectionString property is visible in Visual Studio designers.

ConnectionString

Obtém ou define a cadeia de conexão associada a DbConnectionStringBuilder.Gets or sets the connection string associated with the DbConnectionStringBuilder.

Count

Obtém o número atual de chaves contidas na propriedade ConnectionString.Gets the current number of keys that are contained within the ConnectionString property.

IsFixedSize

Obtém um valor que indica se o DbConnectionStringBuilder tem um tamanho fixo.Gets a value that indicates whether the DbConnectionStringBuilder has a fixed size.

IsReadOnly

Obtém um valor que indica se o DbConnectionStringBuilder é somente leitura.Gets a value that indicates whether the DbConnectionStringBuilder is read-only.

Item[String]

Obtém ou define o valor associado à chave especificada.Gets or sets the value associated with the specified key.

Keys

Obtém um ICollection que contém as chaves no DbConnectionStringBuilder.Gets an ICollection that contains the keys in the DbConnectionStringBuilder.

Values

Obtém um ICollection que contém os valores no DbConnectionStringBuilder.Gets an ICollection that contains the values in the DbConnectionStringBuilder.

Métodos

Add(String, Object)

Adiciona uma entrada com a chave e o valor especificados ao DbConnectionStringBuilder.Adds an entry with the specified key and value into the DbConnectionStringBuilder.

AppendKeyValuePair(StringBuilder, String, String)

Fornece uma maneira eficiente e segura para acrescentar uma chave e um valor a um objeto StringBuilder existente.Provides an efficient and safe way to append a key and value to an existing StringBuilder object.

AppendKeyValuePair(StringBuilder, String, String, Boolean)

Fornece uma maneira eficiente e segura para acrescentar uma chave e um valor a um objeto StringBuilder existente.Provides an efficient and safe way to append a key and value to an existing StringBuilder object.

Clear()

Limpa o conteúdo da instância DbConnectionStringBuilder.Clears the contents of the DbConnectionStringBuilder instance.

ClearPropertyDescriptors()

Limpa a coleção de objetos PropertyDescriptor no DbConnectionStringBuilder associado.Clears the collection of PropertyDescriptor objects on the associated DbConnectionStringBuilder.

ContainsKey(String)

Determina se a DbConnectionStringBuilder contém uma chave específica.Determines whether the DbConnectionStringBuilder contains a specific key.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object.

(Herdado de Object)
EquivalentTo(DbConnectionStringBuilder)

Compara as informações de conexão neste objeto DbConnectionStringBuilder com as informações de conexão no objeto fornecido.Compares the connection information in this DbConnectionStringBuilder object with the connection information in the supplied object.

GetHashCode()

Serve como a função de hash padrão.Serves as the default hash function.

(Herdado de Object)
GetProperties(Hashtable)

Preenche um Hashtable fornecido com informações sobre todas as propriedades deste DbConnectionStringBuilder.Fills a supplied Hashtable with information about all the properties of this DbConnectionStringBuilder.

GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Herdado de Object)
Remove(String)

Remove a entrada com a chave especificada da instância de DbConnectionStringBuilder.Removes the entry with the specified key from the DbConnectionStringBuilder instance.

ShouldSerialize(String)

Indica se a chave especificada existe nessa instância DbConnectionStringBuilder.Indicates whether the specified key exists in this DbConnectionStringBuilder instance.

ToString()

Retorna a cadeia de conexão associada a esse DbConnectionStringBuilder.Returns the connection string associated with this DbConnectionStringBuilder.

TryGetValue(String, Object)

Recupera um valor correspondente para a chave fornecida deste DbConnectionStringBuilder.Retrieves a value corresponding to the supplied key from this DbConnectionStringBuilder.

Implantações explícitas de interface

ICollection.CopyTo(Array, Int32)

Copia os elementos do ICollection para um Array, começando em um determinado índice Array.Copies the elements of the ICollection to an Array, starting at a particular Array index.

ICollection.IsSynchronized

Obtém um valor que indica se o acesso à ICollection é sincronizado (thread-safe).Gets a value indicating whether access to the ICollection is synchronized (thread safe).

ICollection.SyncRoot

Obtém um objeto que pode ser usado para sincronizar o acesso ao ICollection.Gets an object that can be used to synchronize access to the ICollection.

ICustomTypeDescriptor.GetAttributes()

Retorna uma coleção de atributos personalizados para esta instância de um componente.Returns a collection of custom attributes for this instance of a component.

ICustomTypeDescriptor.GetClassName()

Retorna o nome de classe desta instância de um componente.Returns the class name of this instance of a component.

ICustomTypeDescriptor.GetComponentName()

Retorna o nome desta instância de um componente.Returns the name of this instance of a component.

ICustomTypeDescriptor.GetConverter()

Retorna um conversor de tipo para esta instância de um componente.Returns a type converter for this instance of a component.

ICustomTypeDescriptor.GetDefaultEvent()

Retorna o evento padrão para esta instância de um componente.Returns the default event for this instance of a component.

ICustomTypeDescriptor.GetDefaultProperty()

Retorna a propriedade padrão para esta instância de um componente.Returns the default property for this instance of a component.

ICustomTypeDescriptor.GetEditor(Type)

Retorna um editor do tipo especificado para esta instância de um componente.Returns an editor of the specified type for this instance of a component.

ICustomTypeDescriptor.GetEvents()

Retorna os eventos desta instância de um componente.Returns the events for this instance of a component.

ICustomTypeDescriptor.GetEvents(Attribute[])

Retorna os eventos desta instância de um componente usando a matriz de atributos especificada como um filtro.Returns the events for this instance of a component using the specified attribute array as a filter.

ICustomTypeDescriptor.GetProperties()

Retorna as propriedades desta instância de um componente.Returns the properties for this instance of a component.

ICustomTypeDescriptor.GetProperties(Attribute[])

Retorna as propriedades desta instância de um componente usando a matriz de atributos como um filtro.Returns the properties for this instance of a component using the attribute array as a filter.

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

Retorna um objeto que contém a propriedade descrita pelo descritor de propriedade especificado.Returns an object that contains the property described by the specified property descriptor.

IDictionary.Add(Object, Object)

Adiciona um elemento com a chave e o valor fornecidos ao objeto IDictionary.Adds an element with the provided key and value to the IDictionary object.

IDictionary.Contains(Object)

Determina se o objeto IDictionary contém um elemento com a chave especificada.Determines whether the IDictionary object contains an element with the specified key.

IDictionary.GetEnumerator()

Retorna um objeto IDictionaryEnumerator para o objeto IDictionary.Returns an IDictionaryEnumerator object for the IDictionary object.

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

Obtém ou define o elemento com a chave especificada.Gets or sets the element with the specified key.

IDictionary.Remove(Object)

Remove o elemento com a chave especificada do objeto IDictionary.Removes the element with the specified key from the IDictionary object.

IEnumerable.GetEnumerator()

Retorna um enumerador que itera em uma coleção.Returns an enumerator that iterates through a collection.

Métodos de Extensão

Cast<TResult>(IEnumerable)

Converte os elementos de um IEnumerable para o tipo especificado.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtra os elementos de um IEnumerable com base em um tipo especificado.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.Enables parallelization of a query.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.Converts an IEnumerable to an IQueryable.

Aplica-se a

Veja também