DbConnectionStringBuilder Classe

Definição

Fornece uma classe base para construtores de cadeia de ligaçã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 IDictionary
    interface ICollection
    interface IEnumerable
    interface ICustomTypeDescriptor
type DbConnectionStringBuilder = class
    interface ICollection
    interface IEnumerable
    interface IDictionary
    interface ICustomTypeDescriptor
Public Class DbConnectionStringBuilder
Implements IDictionary
Public Class DbConnectionStringBuilder
Implements ICustomTypeDescriptor, IDictionary
Herança
DbConnectionStringBuilder
Derivado
Implementações

Exemplos

A seguinte aplicação de consola constrói duas cadeias de ligação, uma para uma base de dados Microsoft Jet e outra para uma base de dados SQL Server. Em cada caso, o código utiliza uma classe genérica DbConnectionStringBuilder para criar a cadeia de ligação, e depois passa a propriedade ConnectionString da instância DbConnectionStringBuilder ao construtor da classe de ligação fortemente tipada. Isto não é obrigatório; O código também poderia ter criado instâncias individuais de construção de cadeia de ligação fortemente tipadas. O exemplo também analisa uma cadeia de ligação existente e demonstra várias formas de manipular o conteúdo da cadeia de ligação.

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

Observações

A classe DbConnectionStringBuilder fornece a classe base da qual derivam os construtores de cadeia de ligação fortemente tipados (SqlConnectionStringBuilder, OleDbConnectionStringBuilder, e assim sucessivamente). Os construtores de cadeia de ligação permitem aos programadores criar cadeias de ligação sintaticamente corretas, e analisar e reconstruir cadeias de ligação existentes.

O DbConnectionStringBuilder foi definido de forma independente da base de dados. Devido à adição do System.Data.Common namespace, os programadores necessitam de uma classe base contra a qual possam programar para construir strings de ligação que funcionem contra uma base de dados arbitrária. Assim, a classe DbConnectionStringBuilder permite aos utilizadores atribuir pares chave/valor arbitrários e passar a cadeia de ligação resultante a um fornecedor fortemente tipado. Todos os fornecedores de dados incluídos em .NET oferecem uma classe fortemente tipada que herda de DbConnectionStringBuilder: SqlConnectionStringBuilder, OracleConnectionStringBuilder, OdbcConnectionStringBuilder e OleDbConnectionStringBuilder.

Podes construir, atribuir e editar strings de ligação para qualquer fornecedor arbitrário. Para fornecedores que suportam pares chave/valor específicos, o construtor de cadeia de ligação fornece propriedades fortemente tipadas correspondentes aos pares conhecidos. Para fornecedores que exigem a capacidade de suportar valores desconhecidos, também pode fornecer pares chave/valor arbitrários.

A classe DbConnectionStringBuilder implementa a interface ICustomTypeDescriptor. Isto significa que a turma trabalha com designers do Visual Studio durante o design. Quando os programadores usam o designer para construir DataSets fortemente tipados e ligações fortemente tipadas dentro do Visual Studio, a classe builder de cadeia de ligação fortemente tipada exibe as propriedades associadas ao seu tipo e também tem conversores que podem mapear valores comuns para chaves conhecidas.

Se precisar de criar cadeias de ligação como parte de aplicações, use a DbConnectionStringBuilder classe ou uma das suas derivadas fortemente tipadas para construir e modificar cadeias de ligação. A DbConnectionStringBuilder classe também facilita a gestão de cadeias de ligação armazenadas num ficheiro de configuração de aplicação.

Podes criar cadeias de ligação usando uma classe builder de cadeia de ligação fortemente tipada ou a classe DbConnectionStringBuilder. Não DbConnectionStringBuilder realiza verificações para pares chave/valor válidos. Portanto, é possível criar cadeias de ligação inválidas ao usar esta classe. O SqlConnectionStringBuilder suporta apenas pares chave/valor suportados por SQL Server; tentar adicionar pares inválidos gera uma exceção.

Tanto o método como Item[] a Add propriedade tratam de casos em que um ator malicioso tenta inserir entradas maliciosas. Por exemplo, o código seguinte 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 é a seguinte cadeia de ligação que trata o valor inválido de forma segura:

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

Construtores

Name Description
DbConnectionStringBuilder()

Inicializa uma nova instância da DbConnectionStringBuilder classe.

DbConnectionStringBuilder(Boolean)

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

Propriedades

Name Description
BrowsableConnectionString

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

ConnectionString

Obtém ou define o cadeia de ligação associado ao DbConnectionStringBuilder.

Count

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

IsFixedSize

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

IsReadOnly

Obtém um valor que indica se o DbConnectionStringBuilder é apenas de 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-se um ICollection que contém os valores no DbConnectionStringBuilder.

Métodos

Name Description
Add(String, Object)

Adiciona uma entrada com a chave e valor especificados no DbConnectionStringBuilder.

AppendKeyValuePair(StringBuilder, String, String, Boolean)

Fornece uma forma eficiente e segura de adicionar uma chave e valor a um objeto existente StringBuilder .

AppendKeyValuePair(StringBuilder, String, String)

Fornece uma forma eficiente e segura de adicionar uma chave e valor a um objeto existente StringBuilder .

Clear()

Limpa o conteúdo da DbConnectionStringBuilder instância.

ClearPropertyDescriptors()

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

ContainsKey(String)

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

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
EquivalentTo(DbConnectionStringBuilder)

Compara a informação de ligação neste DbConnectionStringBuilder objeto com a informação de ligação no objeto fornecido.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetProperties(Hashtable)

Preenche um fornecimento Hashtable 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 atual Object.

(Herdado de Object)
Remove(String)

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

ShouldSerialize(String)

Indica se a chave especificada existe neste DbConnectionStringBuilder caso.

ToString()

Devolve o cadeia de ligação associado a este DbConnectionStringBuilder.

TryGetValue(String, Object)

Recupera um valor correspondente à chave fornecida a partir desta DbConnectionStringBuilder.

Implementações de Interface Explícita

Name Description
ICollection.CopyTo(Array, Int32)

Copia os elementos do ICollection para um Array, começando num índice particular Array .

ICollection.IsSynchronized

Recebe um valor que indica se o acesso ao ICollection é sincronizado (thread safe).

ICollection.SyncRoot

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

ICustomTypeDescriptor.GetAttributes()

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

ICustomTypeDescriptor.GetClassName()

Devolve o nome da classe desta instância de um componente.

ICustomTypeDescriptor.GetComponentName()

Devolve o nome desta instância de um componente.

ICustomTypeDescriptor.GetConverter()

Devolve um conversor de tipos para esta instância de um componente.

ICustomTypeDescriptor.GetDefaultEvent()

Devolve o evento predefinido para esta instância de um componente.

ICustomTypeDescriptor.GetDefaultProperty()

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

ICustomTypeDescriptor.GetEditor(Type)

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

ICustomTypeDescriptor.GetEvents()

Devolve os eventos para esta instância de um componente.

ICustomTypeDescriptor.GetEvents(Attribute[])

Devolve os eventos para esta instância de um componente usando o array de atributos especificado como filtro.

ICustomTypeDescriptor.GetProperties()

Devolve as propriedades para esta instância de um componente.

ICustomTypeDescriptor.GetProperties(Attribute[])

Devolve as propriedades para esta instância de um componente usando o array de atributos como filtro.

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

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

IDictionary.Add(Object, Object)

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

IDictionary.Contains(Object)

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

IDictionary.GetEnumerator()

Devolve um IDictionaryEnumerator objeto para o IDictionary objeto.

IDictionary.IsFixedSize

Recebe um valor que indica se o IDictionary objeto tem um tamanho fixo.

IDictionary.IsReadOnly

Recebe um valor que indica se o IDictionary é apenas de 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 IDictionary objeto.

IEnumerable.GetEnumerator()

Devolve um enumerador que itera numa coleção.

Métodos da Extensão

Name Description
AsParallel(IEnumerable)

Permite a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable para um IQueryable.

Cast<TResult>(IEnumerable)

Conjura os elementos de an IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

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

Aplica-se a

Ver também