DbConnectionStringBuilder Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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. |