DbConnectionStringBuilder Clase

Definición

Proporciona una clase base para los generadores de cadenas de la conexión fuertemente tipada.Provides a base class for strongly typed connection string builders.

public ref class DbConnectionStringBuilder : System::Collections::IDictionary, System::ComponentModel::ICustomTypeDescriptor
public class DbConnectionStringBuilder : System.Collections.IDictionary, System.ComponentModel.ICustomTypeDescriptor
type DbConnectionStringBuilder = class
    interface IDictionary
    interface ICustomTypeDescriptor
    interface ICollection
    interface IEnumerable
Public Class DbConnectionStringBuilder
Implements ICustomTypeDescriptor, IDictionary
Herencia
DbConnectionStringBuilder
Derivado
Implementaciones

Ejemplos

La siguiente aplicación de consola genera dos cadenas de conexión, una para una base de datos de Microsoft Jet y otra para una base de datos de SQL Server.The following console application builds two connection strings, one for a Microsoft Jet database, and one for a SQL Server database. En cada caso, el código usa una clase DbConnectionStringBuilder genérica para crear la cadena de conexión y, a continuación ConnectionString , pasa la DbConnectionStringBuilder propiedad de la instancia al constructor de la clase de conexión fuertemente tipada.In each case, the code uses a generic DbConnectionStringBuilder class to create the connection string, and then passes the ConnectionString property of the DbConnectionStringBuilder instance to the constructor of the strongly type connection class. Esto no es necesario; el código también podría haber creado instancias individuales del generador de cadenas de conexión fuertemente tipadas.This is not required; the code could also have created individual strongly typed connection string builder instances. En el ejemplo también se analiza una cadena de conexión existente y se muestran varias maneras de manipular el contenido de la cadena de conexión.The example also parses an existing connection string, and demonstrates various ways of manipulating the connection string's contents.

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ónSqlConnectionStringBuilderfuertemente OleDbConnectionStringBuildertipadas (,, etc.).The DbConnectionStringBuilder class provides the base class from which the strongly typed connection string builders (SqlConnectionStringBuilder, OleDbConnectionStringBuilder, and so on) derive. Los generadores de cadenas de conexión permiten a los desarrolladores crear mediante programación cadenas de conexión sintácticamente correctas, y analizar y volver a generar cadenas de conexión existentes.The connection string builders let developers programmatically create syntactically correct connection strings, and parse and rebuild existing connection strings.

Se DbConnectionStringBuilder ha definido de forma independiente de la base de datos.The DbConnectionStringBuilder has been defined in a database-agnostic manner. Debido a la adición del System.Data.Common espacio de nombres, los desarrolladores requieren una clase base en la que pueden programar para crear cadenas de conexión que puedan funcionar en una base de datos arbitraria.Because of the addition of the System.Data.Common namespace, developers require a base class against which they can program in order to build connection strings that can work against an arbitrary database. Por lo tanto DbConnectionStringBuilder , la clase permite a los usuarios asignar pares clave-valor arbitrarios y pasar la cadena de conexión resultante a un proveedor fuertemente tipado.Therefore, the DbConnectionStringBuilder class lets users assign arbitrary key/value pairs and pass the resulting connection string to a strongly typed provider. Todos los proveedores de datos que se incluyen como parte del .NET Framework proporcionan una clase fuertemente tipada que hereda de DbConnectionStringBuilder: SqlConnectionStringBuilder, OracleConnectionStringBuilder, OdbcConnectionStringBuildery OleDbConnectionStringBuilder.All the data providers that are included as part of the .NET Framework provide a strongly typed class that inherits from DbConnectionStringBuilder: SqlConnectionStringBuilder, OracleConnectionStringBuilder, OdbcConnectionStringBuilder, and OleDbConnectionStringBuilder.

El desarrollador puede crear, asignar y editar cadenas de conexión para cualquier proveedor arbitrario.The developer can build, assign, and edit connection strings for any arbitrary provider. Para los proveedores que admiten pares clave-valor específicos, el generador de cadenas de conexión proporciona propiedades fuertemente tipadas que corresponden a los pares conocidos.For providers that support specific key/value pairs, the connection string builder provides strongly typed properties corresponding to the known pairs. Con el fin de admitir proveedores que requieren la capacidad de admitir valores desconocidos, los desarrolladores también pueden proporcionar pares de clave/valor arbitrarios.In order to support providers that require the ability to support unknown values, developers can also supply arbitrary key/value pairs.

La clase DbConnectionStringBuilder implementa la interfaz ICustomTypeDescriptor.The DbConnectionStringBuilder class implements the ICustomTypeDescriptor interface. Esto significa que la clase funciona con diseñadores de Visual Studio en tiempo de diseño.This means that the class works with Visual Studio designers at design time. Cuando los desarrolladores usan el diseñador para crear conjuntos de información fuertemente tipados y conexiones fuertemente tipadas en Visual Studio, la clase de 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 las claves conocidas.When developers use the designer to build strongly typed DataSets and strongly typed connections within Visual Studio, the strongly typed connection string builder class will display the properties associated with its type and will also have converters that can map common values for known keys.

Los desarrolladores que necesitan crear cadenas de conexión como parte de las aplicaciones pueden DbConnectionStringBuilder utilizar la clase o una de sus derivadas fuertemente tipadas para compilar y modificar las cadenas de conexión.Developers needing to create connection strings as part of applications can use the DbConnectionStringBuilder class or one of its strongly typed derivatives to build and modify connection strings. La DbConnectionStringBuilder clase también facilita la administración de las cadenas de conexión almacenadas en un archivo de configuración de la aplicación.The DbConnectionStringBuilder class also makes it easy to manage connection strings stored in an application configuration file.

Los desarrolladores pueden crear cadenas de conexión mediante una clase de generador de cadenas de conexión fuertemente tipadas, o DbConnectionStringBuilder bien pueden utilizar la clase.Developers can create connection strings using either a strongly typed connection string builder class, or they can use the DbConnectionStringBuilder class. No DbConnectionStringBuilder realiza comprobaciones de los pares clave-valor válidos.The DbConnectionStringBuilder performs no checks for valid key/value pairs. Por consiguiente, es posible crear cadenas de conexión no válidas utilizando esta clase.Therefore, it is possible using this class to create invalid connection strings. Solo SqlConnectionStringBuilder admite pares clave-valor admitidos por SQL Server; si se intenta agregar pares no válidos, se producirá una excepción.The SqlConnectionStringBuilder supports only key/value pairs that are supported by SQL Server; trying to add invalid pairs will throw an exception.

Tanto el Add identificador de Item[String] método como el de propiedad intentan insertar entradas malintencionadas.Both the Add method and Item[String] property handle tries to insert malicious entries. Por ejemplo, el código siguiente convierte correctamente el carácter de escape en el par de clave/valor anidado:For example, the following code correctly escapes the nested key/value pair:

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:The result is the following connection string that handles the invalid value in a safe manner:

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

Constructores

DbConnectionStringBuilder()

Inicializa una nueva instancia de la clase DbConnectionStringBuilder.Initializes a new instance of the DbConnectionStringBuilder class.

DbConnectionStringBuilder(Boolean)

Inicializa una nueva instancia de la clase DbConnectionStringBuilder, usando opcionalmente las reglas de ODBC para entrecomillar los valores.Initializes a new instance of the DbConnectionStringBuilder class, optionally using ODBC rules for quoting values.

Propiedades

BrowsableConnectionString

Obtiene o establece un valor que indica si la propiedad ConnectionString está visible en los diseñadores de Visual Studio.Gets or sets a value that indicates whether the ConnectionString property is visible in Visual Studio designers.

ConnectionString

Obtiene o establece la cadena de conexión asociada con el DbConnectionStringBuilder.Gets or sets the connection string associated with the DbConnectionStringBuilder.

Count

Obtiene el número actual de claves que están dentro de la propiedad ConnectionString.Gets the current number of keys that are contained within the ConnectionString property.

IsFixedSize

Obtiene un valor que indica si el objeto DbConnectionStringBuilder tiene un tamaño fijo.Gets a value that indicates whether the DbConnectionStringBuilder has a fixed size.

IsReadOnly

Obtiene un valor que indica si DbConnectionStringBuilder es de solo lectura.Gets a value that indicates whether the DbConnectionStringBuilder is read-only.

Item[String]

Obtiene o establece el valor asociado a la clave especificada.Gets or sets the value associated with the specified key.

Keys

Obtiene una ICollection que contiene las claves de DbConnectionStringBuilder.Gets an ICollection that contains the keys in the DbConnectionStringBuilder.

Values

Obtiene un ICollection que contiene los valores de DbConnectionStringBuilder.Gets an ICollection that contains the values in the DbConnectionStringBuilder.

Métodos

Add(String, Object)

Agrega una entrada con la clave y el valor especificados a DbConnectionStringBuilder.Adds an entry with the specified key and value into the DbConnectionStringBuilder.

AppendKeyValuePair(StringBuilder, String, String)

Proporciona una manera eficaz y segura de anexar una clave y un valor a un objeto StringBuilder existente.Provides an efficient and safe way to append a key and value to an existing StringBuilder object.

AppendKeyValuePair(StringBuilder, String, String, Boolean)

Proporciona una manera eficaz y segura de anexar una clave y un valor a un objeto StringBuilder existente.Provides an efficient and safe way to append a key and value to an existing StringBuilder object.

Clear()

Borra el contenido de la instancia de DbConnectionStringBuilder.Clears the contents of the DbConnectionStringBuilder instance.

ClearPropertyDescriptors()

Borra la colección de objetos PropertyDescriptor del DbConnectionStringBuilder asociado.Clears the collection of PropertyDescriptor objects on the associated DbConnectionStringBuilder.

ContainsKey(String)

Determina si DbConnectionStringBuilder contiene una clave específica.Determines whether the DbConnectionStringBuilder contains a specific key.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(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.Compares the connection information in this DbConnectionStringBuilder object with the connection information in the supplied object.

GetHashCode()

Sirve como función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetProperties(Hashtable)

Rellena un Hashtable proporcionado con información sobre todas las propiedades de este DbConnectionStringBuilder.Fills a supplied Hashtable with information about all the properties of this DbConnectionStringBuilder.

GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
Remove(String)

Quita la entrada con la clave especificada de la instancia de DbConnectionStringBuilder.Removes the entry with the specified key from the DbConnectionStringBuilder instance.

ShouldSerialize(String)

Indica si la clave especificada existe en esta instancia de DbConnectionStringBuilder.Indicates whether the specified key exists in this DbConnectionStringBuilder instance.

ToString()

Devuelve la cadena de conexión asociada a este DbConnectionStringBuilder.Returns the connection string associated with this DbConnectionStringBuilder.

TryGetValue(String, Object)

Recupera un valor que corresponde a la clave proporcionada por este DbConnectionStringBuilder.Retrieves a value corresponding to the supplied key from this DbConnectionStringBuilder.

Implementaciones de interfaz explícitas

ICollection.CopyTo(Array, Int32)

Copia los elementos de ICollection en Array, empezando por un índice determinado de Array.Copies the elements of the ICollection to an Array, starting at a particular Array index.

ICollection.IsSynchronized

Obtiene un valor que indica si el acceso a la interfaz ICollection está sincronizado (es seguro para subprocesos).Gets a value indicating whether access to the ICollection is synchronized (thread safe).

ICollection.SyncRoot

Obtiene un objeto que se puede usar para sincronizar el acceso a ICollection.Gets an object that can be used to synchronize access to the ICollection.

ICustomTypeDescriptor.GetAttributes()

Devuelve una colección de atributos personalizados para esta instancia de un componente.Returns a collection of custom attributes for this instance of a component.

ICustomTypeDescriptor.GetClassName()

Devuelve el nombre de clase de esta instancia de un componente.Returns the class name of this instance of a component.

ICustomTypeDescriptor.GetComponentName()

Devuelve los eventos para esta instancia de un componente.Returns the name of this instance of a component.

ICustomTypeDescriptor.GetConverter()

Devuelve un convertidor de tipos para instancia de un componente.Returns a type converter for this instance of a component.

ICustomTypeDescriptor.GetDefaultEvent()

Devuelve el evento predeterminado para esta instancia de un componente.Returns the default event for this instance of a component.

ICustomTypeDescriptor.GetDefaultProperty()

Devuelve la propiedad predeterminada para esta instancia de un componente.Returns the default property for this instance of a component.

ICustomTypeDescriptor.GetEditor(Type)

Devuelve un editor del tipo especificado para esta instancia de un componente.Returns an editor of the specified type for this instance of a component.

ICustomTypeDescriptor.GetEvents()

Devuelve los eventos para esta instancia de un componente.Returns the events for this instance of a component.

ICustomTypeDescriptor.GetEvents(Attribute[])

Devuelve los eventos de esta instancia de un componente utilizando la matriz de atributos especificada como filtro.Returns the events for this instance of a component using the specified attribute array as a filter.

ICustomTypeDescriptor.GetProperties()

Devuelve las propiedades para esta instancia de un componente.Returns the properties for this instance of a component.

ICustomTypeDescriptor.GetProperties(Attribute[])

Devuelve las propiedades para esta instancia de un componente usando la matriz de atributos como filtro.Returns the properties for this instance of a component using the attribute array as a filter.

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

Devuelve un objeto que contiene la propiedad que describe el descriptor de propiedades especificado.Returns an object that contains the property described by the specified property descriptor.

IDictionary.Add(Object, Object)

Agrega un elemento con la clave y el valor proporcionados al objeto IDictionary.Adds an element with the provided key and value to the IDictionary object.

IDictionary.Contains(Object)

Determina si el objeto IDictionary contiene un elemento con la clave especificada.Determines whether the IDictionary object contains an element with the specified key.

IDictionary.GetEnumerator()

Devuelve un objeto IDictionaryEnumerator para el objeto IDictionary.Returns an IDictionaryEnumerator object for the IDictionary object.

IDictionary.IsFixedSize
IDictionary.IsReadOnly
IDictionary.Item[Object]

Obtiene o establece el elemento con la clave especificada.Gets or sets the element with the specified key.

IDictionary.Remove(Object)

Quita el elemento con la clave especificada del objeto IDictionary.Removes the element with the specified key from the IDictionary object.

IEnumerable.GetEnumerator()

Devuelve un enumerador que recorre en iteración una colección.Returns an enumerator that iterates through a collection.

Métodos de extensión

Cast<TResult>(IEnumerable)

Convierte los elementos de IEnumerable en el tipo especificado.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtra los elementos de IEnumerable en función de un tipo especificado.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Habilita la paralelización de una consulta.Enables parallelization of a query.

AsQueryable(IEnumerable)

Convierte una interfaz IEnumerable en IQueryable.Converts an IEnumerable to an IQueryable.

Se aplica a

Consulte también: