DbConnectionStringBuilder Classe

Definição

Fornece uma classe base para construtores de cadeia de conexão fortemente tipados.

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
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. Em cada caso, o código usa uma classe genérica DbConnectionStringBuilder para criar o cadeia de conexão e, em seguida, passa a ConnectionString propriedade da DbConnectionStringBuilder instância para o construtor da classe de conexão fortemente tipada. Isso não é necessário; o código também pode ter criado instâncias individuais fortemente tipdas cadeia de conexão construtor. O exemplo também analisa um cadeia de conexão existente e demonstra várias maneiras de manipular o conteúdo do cadeia de conexão.

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 DbConnectionStringBuilder classe fornece a classe base da qual os construtores de cadeia de conexão fortemente tipado (SqlConnectionStringBuilder, OleDbConnectionStringBuildere assim por diante) derivam. Os construtores de cadeia de conexão permitem que os desenvolvedores criem programaticamente cadeias de conexão sintaticamente corretas e analisem e recompilem cadeias de conexão existentes.

O DbConnectionStringBuilder foi definido de maneira independente do banco de dados. Devido à adição do namespace, os System.Data.Common 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. Portanto, a DbConnectionStringBuilder classe permite que os usuários atribuam pares arbitrários de chave/valor e passem o cadeia de conexão resultante para um provedor fortemente tipado. 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.

O desenvolvedor pode criar, atribuir e editar cadeias de conexão para qualquer provedor arbitrário. Para provedores que dão suporte a pares chave/valor específicos, o construtor de cadeia de conexão fornece propriedades fortemente tipada correspondentes aos pares conhecidos. Para dar suporte a provedores que exigem a capacidade de dar suporte a valores desconhecidos, os desenvolvedores também podem fornecer pares arbitrários de chave/valor.

A classe DbConnectionStringBuilder implementa a interface ICustomTypeDescriptor. Isso significa que a classe funciona com designers do Visual Studio em tempo de design. Quando os desenvolvedores usam o designer para criar DataSets fortemente tipados e conexões fortemente tipadas no Visual Studio, a classe de construtor de cadeia de conexão fortemente tipada exibirá as propriedades associadas ao seu tipo e também terá conversores que podem mapear valores comuns para chaves conhecidas.

Os desenvolvedores que precisam criar cadeias de conexão como parte de aplicativos podem usar a DbConnectionStringBuilder classe ou um de seus derivados fortemente tipados para criar e modificar cadeias de conexão. A DbConnectionStringBuilder classe também facilita o gerenciamento de cadeias de conexão armazenadas em um arquivo de configuração de aplicativo.

Os desenvolvedores podem criar cadeias de conexão usando uma classe de construtor de cadeia de conexão fortemente tipada ou podem usar a DbConnectionStringBuilder classe . O DbConnectionStringBuilder não executa verificações de pares chave/valor válidos. Portanto, é possível usar essa classe para criar cadeias de conexão inválidas. O SqlConnectionStringBuilder dá suporte apenas a pares chave/valor compatíveis com SQL Server; tentar adicionar pares inválidos gerará uma exceção.

O método e Item[] o Add identificador de propriedade tentam inserir entradas mal-intencionadas. Por exemplo, o código a seguir escapa corretamente do par chave/valor aninhado:

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

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

Construtores

DbConnectionStringBuilder()

Inicializa uma nova instância da classe DbConnectionStringBuilder.

DbConnectionStringBuilder(Boolean)

Inicializa uma nova instância da classe DbConnectionStringBuilder, opcionalmente usando regras ODBC para delimitar valores.

Propriedades

BrowsableConnectionString

Obtém ou define um valor que indica se a propriedade ConnectionString é visível nos designers do Visual Studio.

ConnectionString

Obtém ou define a cadeia de conexão associada a DbConnectionStringBuilder.

Count

Obtém o número atual de chaves contidas na propriedade ConnectionString.

IsFixedSize

Obtém um valor que indica se o DbConnectionStringBuilder tem um tamanho fixo.

IsReadOnly

Obtém um valor que indica se o DbConnectionStringBuilder é somente leitura.

Item[String]

Obtém ou define o valor associado à chave especificada.

Keys

Obtém um ICollection que contém as chaves no DbConnectionStringBuilder.

Values

Obtém um ICollection que contém os valores no DbConnectionStringBuilder.

Métodos

Add(String, Object)

Adiciona uma entrada com a chave e o valor especificados ao DbConnectionStringBuilder.

AppendKeyValuePair(StringBuilder, String, String)

Fornece uma maneira eficiente e segura para acrescentar uma chave e um valor a um objeto StringBuilder existente.

AppendKeyValuePair(StringBuilder, String, String, Boolean)

Fornece uma maneira eficiente e segura para acrescentar uma chave e um valor a um objeto StringBuilder existente.

Clear()

Limpa o conteúdo da instância DbConnectionStringBuilder.

ClearPropertyDescriptors()

Limpa a coleção de objetos PropertyDescriptor no DbConnectionStringBuilder associado.

ContainsKey(String)

Determina se a DbConnectionStringBuilder contém uma chave específica.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(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.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetProperties(Hashtable)

Preenche um Hashtable fornecido com informações sobre todas as propriedades deste DbConnectionStringBuilder.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
Remove(String)

Remove a entrada com a chave especificada da instância de DbConnectionStringBuilder.

ShouldSerialize(String)

Indica se a chave especificada existe nessa instância DbConnectionStringBuilder.

ToString()

Retorna a cadeia de conexão associada a esse DbConnectionStringBuilder.

TryGetValue(String, Object)

Recupera um valor correspondente para a chave fornecida deste 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.

ICollection.IsSynchronized

Obtém um valor que indica se o acesso à ICollection é sincronizado (thread-safe).

ICollection.SyncRoot

Obtém um objeto que pode ser usado para sincronizar o acesso ao ICollection.

ICustomTypeDescriptor.GetAttributes()

Retorna uma coleção de atributos personalizados para esta instância de um componente.

ICustomTypeDescriptor.GetClassName()

Retorna o nome de classe desta instância de um componente.

ICustomTypeDescriptor.GetComponentName()

Retorna o nome desta instância de um componente.

ICustomTypeDescriptor.GetConverter()

Retorna um conversor de tipo para esta instância de um componente.

ICustomTypeDescriptor.GetDefaultEvent()

Retorna o evento padrão para esta instância de um componente.

ICustomTypeDescriptor.GetDefaultProperty()

Retorna a propriedade padrão para esta instância de um componente.

ICustomTypeDescriptor.GetEditor(Type)

Retorna um editor do tipo especificado para esta instância de um componente.

ICustomTypeDescriptor.GetEvents()

Retorna os eventos desta instância de um componente.

ICustomTypeDescriptor.GetEvents(Attribute[])

Retorna os eventos desta instância de um componente usando a matriz de atributos especificada como um filtro.

ICustomTypeDescriptor.GetProperties()

Retorna as propriedades desta instância de um componente.

ICustomTypeDescriptor.GetProperties(Attribute[])

Retorna as propriedades desta instância de um componente usando a matriz de atributos como um filtro.

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

Retorna um objeto que contém a propriedade descrita pelo descritor de propriedade especificado.

IDictionary.Add(Object, Object)

Adiciona um elemento com a chave e o valor fornecidos ao objeto IDictionary.

IDictionary.Contains(Object)

Determina se o objeto IDictionary contém um elemento com a chave especificada.

IDictionary.GetEnumerator()

Retorna um objeto IDictionaryEnumerator para o objeto IDictionary.

IDictionary.IsFixedSize

Obtém um valor que indica se o objeto IDictionary tem um tamanho fixo.

IDictionary.IsReadOnly

Obtém um valor que indica se o IDictionary é somente leitura.

IDictionary.Item[Object]

Obtém ou define o elemento com a chave especificada.

IDictionary.Remove(Object)

Remove o elemento com a chave especificada do objeto IDictionary.

IEnumerable.GetEnumerator()

Retorna um enumerador que itera em uma coleção.

Métodos de Extensão

Cast<TResult>(IEnumerable)

Converte os elementos de um IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

Filtra os elementos de um IEnumerable com base em um tipo especificado.

AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.

Aplica-se a

Confira também