DbConnectionStringBuilder Clase

Definición

Proporciona una clase base para los generadores de cadenas de la conexión fuertemente tipada.

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 siguiente aplicación de consola compila dos cadenas de conexión, una para una base de datos jet de Microsoft y otra para una base de datos de SQL Server. En cada caso, el código usa una clase genérica DbConnectionStringBuilder para crear la cadena de conexión y, a continuación, pasa la ConnectionString propiedad de la DbConnectionStringBuilder instancia 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.

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

Comentarios

La DbConnectionStringBuilder clase 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 sintácticas y analizar y recompilar las cadenas de conexión existentes.

se DbConnectionStringBuilder ha definido de forma independiente de la base de datos. Debido a la adición del espacio de System.Data.Common nombres, 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 DbConnectionStringBuilder clase permite a los usuarios asignar pares de 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 Framework proporcionan una clase fuertemente tipada que hereda de DbConnectionStringBuilder: SqlConnectionStringBuilder, OracleConnectionStringBuilder, OdbcConnectionStringBuildery OleDbConnectionStringBuilder.

El desarrollador puede compilar, asignar y editar cadenas de conexión para cualquier proveedor arbitrario. En el caso de 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. Para admitir proveedores que requieren la capacidad de admitir valores desconocidos, los desarrolladores también pueden proporcionar pares de 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 crear conjuntos de datos fuertemente tipados y conexiones fuertemente tipadas dentro de Visual Studio, la clase generador de cadenas de conexión fuertemente tipadas mostrará las propiedades asociadas a su tipo y también tendrá convertidores que pueden asignar valores comunes para claves conocidas.

Los desarrolladores que necesitan crear cadenas de conexión como parte de las aplicaciones pueden usar la DbConnectionStringBuilder clase o uno de sus derivados fuertemente tipados para compilar y modificar cadenas de conexión. La DbConnectionStringBuilder clase también facilita la administración de cadenas de conexión almacenadas en un archivo de configuración de aplicación.

Los desarrolladores pueden crear cadenas de conexión mediante una clase generadora de cadenas de conexión fuertemente tipadas o pueden usar la DbConnectionStringBuilder clase . no DbConnectionStringBuilder realiza ninguna comprobación de los pares clave-valor válidos. Por consiguiente, es posible crear cadenas de conexión no válidas utilizando esta clase. Solo SqlConnectionStringBuilder admite pares clave-valor admitidos por SQL Server; al intentar agregar pares no válidos se producirá una excepción.

Tanto el método como Item[] el Add identificador de propiedad intentan 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 una manera 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, usando opcionalmente las reglas de ODBC para entrecomillar los 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 con el DbConnectionStringBuilder.

Count

Obtiene el número actual de claves que están dentro de la propiedad ConnectionString.

IsFixedSize

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

IsReadOnly

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

Item[String]

Obtiene o establece el valor asociado a la clave especificada.

Keys

Obtiene una ICollection que contiene las claves de DbConnectionStringBuilder.

Values

Obtiene un ICollection que contiene los valores de DbConnectionStringBuilder.

Métodos

Add(String, Object)

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

AppendKeyValuePair(StringBuilder, String, String)

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

AppendKeyValuePair(StringBuilder, String, String, Boolean)

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 del DbConnectionStringBuilder asociado.

ContainsKey(String)

Determina si DbConnectionStringBuilder contiene una clave específica.

Equals(Object)

Determina si el objeto especificado es igual que el 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 especificado.

GetHashCode()

Sirve como la 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 Object actual.

(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 que corresponde a la clave proporcionada por este DbConnectionStringBuilder.

Implementaciones de interfaz explícitas

ICollection.CopyTo(Array, Int32)

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

ICollection.IsSynchronized

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

ICollection.SyncRoot

Obtiene un objeto que se puede usar para sincronizar el acceso a 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 los eventos para esta instancia de un componente.

ICustomTypeDescriptor.GetConverter()

Devuelve un convertidor de tipos para 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 para esta instancia de un componente.

ICustomTypeDescriptor.GetEvents(Attribute[])

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

ICustomTypeDescriptor.GetProperties()

Devuelve las propiedades para esta instancia de un componente.

ICustomTypeDescriptor.GetProperties(Attribute[])

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

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

Devuelve un objeto que contiene la propiedad que describe el descriptor de propiedades 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 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 IEnumerable en el tipo especificado.

OfType<TResult>(IEnumerable)

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

AsParallel(IEnumerable)

Habilita la paralelización de una consulta.

AsQueryable(IEnumerable)

Convierte una interfaz IEnumerable en IQueryable.

Se aplica a

Consulte también