Compartir vía


DbConnectionStringBuilder Clase

Definición

Proporciona una clase base para generadores de cadenas de conexión fuertemente tipadas.

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
Herencia
DbConnectionStringBuilder
Derivado
Implementaciones

Ejemplos

La aplicación de consola siguiente compila dos cadenas de conexión, una para una base de datos de Microsoft Jet y otra para una base de datos de SQL Server. En cada caso, el código usa una clase DbConnectionStringBuilder genérica para crear la cadena de conexión y, a continuación, pasa la propiedad ConnectionString de la instancia de DbConnectionStringBuilder al constructor de la clase de conexión fuertemente tipada. Esto no es necesario; El código también podría haber creado instancias individuales de generador de cadenas de conexión fuertemente tipadas. En el ejemplo también se analiza una cadena de conexión existente y se muestran varias formas de manipular el contenido de la cadena de conexión.

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

Comentarios

La clase DbConnectionStringBuilder proporciona la clase base de la que derivan los generadores de cadenas de conexión fuertemente tipados (SqlConnectionStringBuilder, OleDbConnectionStringBuilder, etc.). Los generadores de cadenas de conexión permiten a los desarrolladores crear mediante programación cadenas de conexión correctas sintácticamente y analizar y recompilar las cadenas de conexión existentes.

El DbConnectionStringBuilder se ha definido de forma independiente de la base de datos. Debido a la adición del espacio de nombres System.Data.Common, los desarrolladores requieren una clase base con la que pueden programar para crear cadenas de conexión que puedan funcionar en una base de datos arbitraria. Por lo tanto, la clase DbConnectionStringBuilder permite a los usuarios asignar pares clave-valor arbitrarios y pasar la cadena de conexión resultante a un proveedor fuertemente tipado. Todos los proveedores de datos que se incluyen como parte de .NET ofrecen una clase fuertemente tipada que hereda de DbConnectionStringBuilder: SqlConnectionStringBuilder, OracleConnectionStringBuilder, OdbcConnectionStringBuildery OleDbConnectionStringBuilder.

Puede compilar, asignar y editar cadenas de conexión para cualquier proveedor arbitrario. Para los proveedores que admiten pares clave-valor específicos, el generador de cadenas de conexión proporciona propiedades fuertemente tipadas correspondientes a los pares conocidos. En el caso de los proveedores que requieren la capacidad de admitir valores desconocidos, también puede proporcionar pares clave-valor arbitrarios.

La clase DbConnectionStringBuilder implementa la interfaz ICustomTypeDescriptor. Esto significa que la clase funciona con diseñadores de Visual Studio en tiempo de diseño. Cuando los desarrolladores usan el diseñador para compilar conjuntos de datos fuertemente tipados y conexiones fuertemente tipadas en Visual Studio, la clase generador de cadenas de conexión fuertemente tipadas muestra las propiedades asociadas a su tipo y también tiene convertidores que pueden asignar valores comunes para claves conocidas.

Si necesita crear cadenas de conexión como parte de las aplicaciones, use la clase DbConnectionStringBuilder o uno de sus derivados fuertemente tipados para compilar y modificar cadenas de conexión. La clase DbConnectionStringBuilder también facilita la administración de cadenas de conexión almacenadas en un archivo de configuración de aplicación.

Puede crear cadenas de conexión mediante una clase generador de cadenas de conexión fuertemente tipadas o la clase DbConnectionStringBuilder. El DbConnectionStringBuilder no realiza ninguna comprobación de los pares clave-valor válidos. Por lo tanto, es posible crear cadenas de conexión no válidas al usar esta clase. El SqlConnectionStringBuilder solo admite pares clave-valor compatibles con SQL Server; si intenta agregar pares no válidos, se producirá una excepción.

Tanto el método Add como Item[] propiedad controlan los casos en los que un actor incorrecto intenta insertar entradas malintencionadas. Por ejemplo, el código siguiente escapa correctamente al par clave-valor anidado:

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

El resultado es la siguiente cadena de conexión que controla el valor no válido de forma segura:

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

Constructores

DbConnectionStringBuilder()

Inicializa una nueva instancia de la clase DbConnectionStringBuilder.

DbConnectionStringBuilder(Boolean)

Inicializa una nueva instancia de la clase DbConnectionStringBuilder, opcionalmente mediante reglas ODBC para entrecomillar valores.

Propiedades

BrowsableConnectionString

Obtiene o establece un valor que indica si la propiedad ConnectionString está visible en los diseñadores de Visual Studio.

ConnectionString

Obtiene o establece la cadena de conexión asociada al DbConnectionStringBuilder.

Count

Obtiene el número actual de claves contenidas en la propiedad ConnectionString.

IsFixedSize

Obtiene un valor que indica si el DbConnectionStringBuilder tiene un tamaño fijo.

IsReadOnly

Obtiene un valor que indica si el DbConnectionStringBuilder es de solo lectura.

Item[String]

Obtiene o establece el valor asociado a la clave especificada.

Keys

Obtiene un ICollection que contiene las claves del DbConnectionStringBuilder.

Values

Obtiene un ICollection que contiene los valores de la DbConnectionStringBuilder.

Métodos

Add(String, Object)

Agrega una entrada con la clave y el valor especificados en el DbConnectionStringBuilder.

AppendKeyValuePair(StringBuilder, String, String, Boolean)

Proporciona una manera eficaz y segura de anexar una clave y un valor a un objeto StringBuilder existente.

AppendKeyValuePair(StringBuilder, String, String)

Proporciona una manera eficaz y segura de anexar una clave y un valor a un objeto StringBuilder existente.

Clear()

Borra el contenido de la instancia de DbConnectionStringBuilder.

ClearPropertyDescriptors()

Borra la colección de objetos PropertyDescriptor en el DbConnectionStringBuilderasociado.

ContainsKey(String)

Determina si el DbConnectionStringBuilder contiene una clave específica.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
EquivalentTo(DbConnectionStringBuilder)

Compara la información de conexión de este objeto DbConnectionStringBuilder con la información de conexión del objeto proporcionado.

GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetProperties(Hashtable)

Rellena un Hashtable proporcionado con información sobre todas las propiedades de este DbConnectionStringBuilder.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
Remove(String)

Quita la entrada con la clave especificada de la instancia de DbConnectionStringBuilder.

ShouldSerialize(String)

Indica si la clave especificada existe en esta instancia de DbConnectionStringBuilder.

ToString()

Devuelve la cadena de conexión asociada a este DbConnectionStringBuilder.

TryGetValue(String, Object)

Recupera un valor correspondiente a la clave proporcionada de este DbConnectionStringBuilder.

Implementaciones de interfaz explícitas

ICollection.CopyTo(Array, Int32)

Copia los elementos del ICollection en un Array, empezando por un índice de Array determinado.

ICollection.IsSynchronized

Obtiene un valor que indica si el acceso a la ICollection está sincronizado (seguro para subprocesos).

ICollection.SyncRoot

Obtiene un objeto que se puede usar para sincronizar el acceso a la ICollection.

ICustomTypeDescriptor.GetAttributes()

Devuelve una colección de atributos personalizados para esta instancia de un componente.

ICustomTypeDescriptor.GetClassName()

Devuelve el nombre de clase de esta instancia de un componente.

ICustomTypeDescriptor.GetComponentName()

Devuelve el nombre de esta instancia de un componente.

ICustomTypeDescriptor.GetConverter()

Devuelve un convertidor de tipos para esta instancia de un componente.

ICustomTypeDescriptor.GetDefaultEvent()

Devuelve el evento predeterminado para esta instancia de un componente.

ICustomTypeDescriptor.GetDefaultProperty()

Devuelve la propiedad predeterminada para esta instancia de un componente.

ICustomTypeDescriptor.GetEditor(Type)

Devuelve un editor del tipo especificado para esta instancia de un componente.

ICustomTypeDescriptor.GetEvents()

Devuelve los eventos de esta instancia de un componente.

ICustomTypeDescriptor.GetEvents(Attribute[])

Devuelve los eventos de esta instancia de un componente mediante la matriz de atributos especificada como filtro.

ICustomTypeDescriptor.GetProperties()

Devuelve las propiedades de esta instancia de un componente.

ICustomTypeDescriptor.GetProperties(Attribute[])

Devuelve las propiedades de esta instancia de un componente mediante la matriz de atributos como filtro.

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

Devuelve un objeto que contiene la propiedad descrita por el descriptor de propiedad especificado.

IDictionary.Add(Object, Object)

Agrega un elemento con la clave y el valor proporcionados al objeto IDictionary.

IDictionary.Contains(Object)

Determina si el objeto IDictionary contiene un elemento con la clave especificada.

IDictionary.GetEnumerator()

Devuelve un objeto IDictionaryEnumerator para el objeto IDictionary.

IDictionary.IsFixedSize

Obtiene un valor que indica si el objeto IDictionary tiene un tamaño fijo.

IDictionary.IsReadOnly

Obtiene un valor que indica si el IDictionary es de solo lectura.

IDictionary.Item[Object]

Obtiene o establece el elemento con la clave especificada.

IDictionary.Remove(Object)

Quita el elemento con la clave especificada del objeto IDictionary.

IEnumerable.GetEnumerator()

Devuelve un enumerador que recorre en iteración una colección.

Métodos de extensión

Cast<TResult>(IEnumerable)

Convierte los elementos de un IEnumerable al tipo especificado.

OfType<TResult>(IEnumerable)

Filtra los elementos de un IEnumerable en función de un tipo especificado.

AsParallel(IEnumerable)

Habilita la paralelización de una consulta.

AsQueryable(IEnumerable)

Convierte un IEnumerable en un IQueryable.

Se aplica a

Consulte también