Share via


SqlConnectionStringBuilder Clase

Definición

Proporciona una manera simple de crear y administrar el contenido de las cadenas de conexión que utiliza la clase SqlConnection.

public ref class SqlConnectionStringBuilder sealed : System::Data::Common::DbConnectionStringBuilder
[System.ComponentModel.TypeConverter(typeof(Microsoft.Data.SqlClient.SqlConnectionStringBuilder+SqlConnectionStringBuilderConverter))]
public sealed class SqlConnectionStringBuilder : System.Data.Common.DbConnectionStringBuilder
public sealed class SqlConnectionStringBuilder : System.Data.Common.DbConnectionStringBuilder
[<System.ComponentModel.TypeConverter(typeof(Microsoft.Data.SqlClient.SqlConnectionStringBuilder+SqlConnectionStringBuilderConverter))>]
type SqlConnectionStringBuilder = class
    inherit DbConnectionStringBuilder
type SqlConnectionStringBuilder = class
    inherit DbConnectionStringBuilder
Public NotInheritable Class SqlConnectionStringBuilder
Inherits DbConnectionStringBuilder
Herencia
SqlConnectionStringBuilder
Atributos

Ejemplos

La siguiente aplicación de consola compila cadenas de conexión para una base de datos de SQL Server. El código utiliza una clase SqlConnectionStringBuilder para crear la cadena de conexión y, a continuación, envía la propiedad ConnectionString de la instancia SqlConnectionStringBuilder al constructor de la clase de conexión. El ejemplo analiza también una cadena de conexión existente y muestra distintas maneras de manipular el contenido de las cadenas de conexión.

Nota

Este ejempo incluye una contraseña para demostrar cómo SqlConnectionStringBuilder funciona con cadenas de conexión. Se recomienda que utilice autenticación de Windows en sus aplicaciones. Si necesita utilizar una contraseña en su aplicación, no incluya una contraseña codificada de forma rígida.

using Microsoft.Data.SqlClient;

class Program
{
    static void Main()
    {
        // Create a new SqlConnectionStringBuilder and
        // initialize it with a few name/value pairs.
        SqlConnectionStringBuilder builder =
            new SqlConnectionStringBuilder(GetConnectionString());

        // The input connection string used the 
        // Server key, but the new connection string uses
        // the well-known Data Source key instead.
        Console.WriteLine(builder.ConnectionString);

        // Pass the SqlConnectionStringBuilder an existing 
        // connection string, and you can retrieve and
        // modify any of the elements.
        builder.ConnectionString = "server=(local);user id=ab;" +
            "password= a!Pass113;initial catalog=AdventureWorks";

        // Now that the connection string has been parsed,
        // you can work with individual items.
        Console.WriteLine(builder.Password);
        builder.Password = "new@1Password";

        // You can refer to connection keys using strings, 
        // as well. When you use this technique (the default
        // Item property in Visual Basic, or the indexer in C#),
        // you can specify any synonym for the connection string key
        // name.
        builder["Server"] = ".";
        builder["Connect Timeout"] = 1000;
        builder["Trusted_Connection"] = true;
        Console.WriteLine(builder.ConnectionString);

        Console.WriteLine("Press Enter to finish.");
        Console.ReadLine();
    }

    private static string GetConnectionString()
    {
        // To avoid storing the connection string in your code,
        // you can retrieve it from a configuration file. 
        return "Server=(local);Integrated Security=SSPI;" +
            "Initial Catalog=AdventureWorks";
    }
}

Comentarios

El generador de cadenas de conexión permite a los programadores crear mediante programación cadenas de conexión sintácticamente correctas, y analizar y volver a generar cadenas de conexión existentes, utilizando las propiedades y los métodos de la clase. El generador de cadenas de conexión proporciona propiedades fuertemente tipadas que corresponden a los pares palabra clave-valor conocidos permitidos por SQL Server. Los programadores que tengan que crear cadenas de conexión como parte de las aplicaciones pueden utilizar la clase SqlConnectionStringBuilder para generarlas y modificarlas. La clase facilita también la administración de cadenas de conexión almacenadas en el archivo de configuración de una aplicación.

La clase SqlConnectionStringBuilder realiza comprobaciones para detectar si los pares palabra clave-valor son válidos. Por consiguiente, no es posible crear cadenas de conexión no válidas utilizando esta clase; el intento de agregar pares inválidos iniciará una excepción. La clase mantiene una colección fija de sinónimos y puede convertir un sinónimo al correspondiente nombre de clave conocido.

Por ejemplo, al usar la propiedad Item para recuperar un valor, puede especificar una cadena que contenga cualquier sinónimo de la clave que necesite. Por ejemplo, puede especificar "Dirección de red", "addr" o cualquier otro sinónimo aceptable para esta clave dentro de un cadena de conexión cuando use cualquier miembro que requiera una cadena que contenga el nombre de clave, como la propiedad Item o el Remove método . Para obtener una lista de sinónimos aceptables, vea la propiedad ConnectionString.

La propiedad Item trata de insertar entradas malintencionadas. Por ejemplo, el siguiente código, utilizando la propiedad Item predeterminada (el indizador en C#) establece una secuencia de escape correcta para el par clave-valor anidado:

Dim builder As New Microsoft.Data.SqlClient.SqlConnectionStringBuilder  
builder("Data Source") = "(local)"  
builder("Integrated Security") = True  
builder("Initial Catalog") = "AdventureWorks;NewValue=Bad"  
Console.WriteLine(builder.ConnectionString)  
Microsoft.Data.SqlClient.SqlConnectionStringBuilder builder =  
  new Microsoft.Data.SqlClient.SqlConnectionStringBuilder();  
builder["Data Source"] = "(local)";  
builder["Integrated Security"] = true;  
builder["Initial Catalog"] = "AdventureWorks;NewValue=Bad";  
Console.WriteLine(builder.ConnectionString);  

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

Source=(local);Initial Catalog="AdventureWorks;NewValue=Bad";  
Integrated Security=True  

Constructores

SqlConnectionStringBuilder()

Inicializa una nueva instancia de la clase SqlConnectionStringBuilder.

SqlConnectionStringBuilder(String)

Inicializa una nueva instancia de la clase SqlConnectionStringBuilder. La cadena de conexión proporcionada facilita los datos para la información de conexión interna de la instancia.

Propiedades

ApplicationIntent

Declara el tipo de carga de trabajo de la aplicación al conectarse a una base de datos en un Grupo de disponibilidad de SQL Server. Se puede establecer el valor de esta propiedad con ApplicationIntent. Para obtener más información sobre la compatibilidad de SqlClient con grupos de disponibilidad AlwaysOn, vea Compatibilidad de SqlClient para alta disponibilidad y recuperación ante desastres.

ApplicationName

Obtiene o establece el nombre de la aplicación asociada a la cadena de conexión.

AsynchronousProcessing
Obsoletos.

Obsoleto. Obtiene o establece un valor booleano que indica si la conexión creada mediante esta cadena de conexión permite el procesamiento asincrónico.

AttachDBFilename

Obtiene o establece una cadena que contiene el nombre del archivo de datos principal. La cadena incluye el nombre completo de la ruta de acceso a una base de datos asociable.

AttestationProtocol

Obtiene o establece el valor de Protocolo de atestación.

Authentication

Obtiene o establece el método de autenticación que se usa para conectarse a SQL Database mediante la autenticación de Azure Active Directory.

ColumnEncryptionSetting

Obtiene o establece la configuración de cifrado de columnas para el generador de cadenas de conexión.

CommandTimeout

Tiempo de espera predeterminado (en segundos) antes de terminar el intento de ejecutar un comando y generar un error. El valor predeterminado es 30 segundos.

ConnectionReset
Obsoletos.
Obsoletos.

Obsoleto. Obtiene o establece un valor booleano que indica si se restablece la conexión cuando se extrae de la agrupación de conexiones.

ConnectRetryCount

El número de reintentos de conexión que se han intentado después de identificar que se ha producido un error de conexión inactiva. Esto debe ser un número entero del 0 al 255. El valor predeterminado para los puntos de conexión que no son de Azure es 1. Para los puntos de conexión de Azure SQL, el valor predeterminado es 2. A partir de la versión 5.x, para Azure SQL puntos de conexión sin servidor o a petición, el valor predeterminado es 5 para mejorar el éxito de la conexión para las conexiones a una instancia inactiva o en pausa. Establézcalo en 0 para deshabilitar la repetición de la conexión con errores de conexión inactiva. Se generará una ArgumentException si se establece en un valor fuera del intervalo permitido.

ConnectRetryInterval

Cantidad de tiempo (en segundos) entre cada intento de reconexión después de la identificación de que se produjo un error de conexión inactiva. Esto debe ser un número entero del 1 al 60. El valor predeterminado es 10 segundos.

ConnectTimeout

Obtiene o establece el tiempo de espera, expresado en segundos, antes de terminar el intento de conexión con un servidor y generar un error.

ContextConnection
Obsoletos.

Obsoleto. Obtiene o establece un valor que indica si debe establecerse una conexión cliente/servidor o una conexión en proceso con SQL Server.

CurrentLanguage

Obtiene o establece el idioma utilizado para los mensajes de error o advertencia del servidor de bases de datos.

DataSource

Obtiene o establece el nombre o la dirección de red de la instancia de SQL Server con la que se va a establecer la conexión.

EnclaveAttestationUrl

Obtiene o establece la dirección URL de atestación del enclave que se usará con la Always Encrypted basada en enclaves.

Encrypt

Obtiene o establece un SqlConnectionEncryptOption valor desde la versión 5.0 o un Boolean valor para las versiones anteriores que indica si se requiere el cifrado TLS para todos los datos enviados entre el cliente y el servidor.

Enlist

Obtiene o establece un valor booleano que indica si el concentrador de conexiones de SQL Server muestra automáticamente la conexión en el contexto de la transacción actual del subproceso de creación.

FailoverPartner

Obtiene o establece el nombre o la dirección del servidor asociado con el que se va a establecer la conexión si el servidor principal está inactivo.

FailoverPartnerSPN

Obtiene o establece el nombre de entidad de seguridad de servicio (SPN) del asociado de conmutación por error para la conexión.

HostNameInCertificate

Obtiene o establece el nombre de host que se va a usar al validar el certificado de servidor para la conexión. Cuando no se especifica, el nombre del servidor de Data Source se usa para la validación de certificados. (Solo disponible en v5.0+)

InitialCatalog

Obtiene o establece el nombre de la base de datos asociada a la conexión.

IntegratedSecurity

Obtiene o establece un valor booleano que indica si están especificados el identificador de usuario y la contraseña en la conexión (cuando es false) o si se utilizan las actuales credenciales de cuenta de Windows para la autenticación (cuando es true).

IPAddressPreference

Obtiene o establece la preferencia de familia de direcciones IP al establecer conexiones TCP.

IsFixedSize

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

Item[String]

Obtiene o establece el valor asociado a la clave especificada. En C#, esta propiedad es el indizador.

Keys

Obtiene una ICollection que contiene las claves de SqlConnectionStringBuilder.

LoadBalanceTimeout

Obtiene o establece el tiempo mínimo, expresado en segundos, durante el cual la conexión permanece activa en la agrupación de conexiones antes de que se destruya.

MaxPoolSize

Obtiene o establece el número máximo de conexiones permitido en la agrupación de conexiones para esta cadena de conexión específica.

MinPoolSize

Obtiene o establece el número mínimo de conexiones permitido en la agrupación de conexiones para esta cadena de conexión específica.

MultipleActiveResultSets

Si es true, una aplicación puede mantener Conjuntos de resultados activos múltiples (MARS). Si es false, una aplicación debe procesar o cancelar todos los conjuntos de resultados de un lote antes de poder ejecutar cualquier otro lote en esa conexión. Para obtener más información, consulte Conjuntos de resultados activos múltiples (MARS).

MultiSubnetFailover

Si su aplicación se conecta a un grupo de disponibilidad (AG) AlwaysOn en subredes diferentes, al establecer MultiSubnetFailover=true, se detecta más rápidamente el servidor (actualmente) activo y se acelera la conexión a este. Para obtener más información sobre la compatibilidad de SqlClient con grupos de disponibilidad AlwaysOn, vea Compatibilidad de SqlClient para alta disponibilidad y recuperación ante desastres.

NetworkLibrary

Obtiene o establece una cadena que contiene el nombre de la biblioteca de red utilizada para establecer una conexión con SQL Server.

PacketSize

Obtiene o establece el tamaño, expresado en bytes, de los paquetes de red utilizados para establecer comunicación con una instancia de SQL Server.

Password

Obtiene o establece la contraseña para la cuenta de SQL Server.

PersistSecurityInfo

Obtiene o establece un valor booleano que indica si la información confidencial de seguridad, como la contraseña o el token de acceso, se debe devolver como parte del cadena de conexión en una conexión creada con esta SqlConnectionStringBuilder después de que esa conexión haya estado en un estado abierto. Esta propiedad solo debe establecerse true en si la aplicación tiene una necesidad específica de leer la contraseña de una conexión de base de datos ya abierta. El valor predeterminado de false es la configuración más segura; el uso true de para esta propiedad abre la aplicación a riesgos de seguridad, como el registro accidental o el seguimiento de la contraseña de la base de datos.

PoolBlockingPeriod

Comportamiento de período de bloqueo para un grupo de conexiones.

Pooling

Obtiene o establece un valor booleano que indica si la conexión se agrupará o se abrirá explícitamente cada vez que sea solicitada.

Replication

Obtiene o establece un valor booleano que indica si se admite la replicación al utilizarse la conexión.

ServerCertificate

Obtiene o establece la ruta de acceso a un archivo de certificado que debe coincidir con el certificado TLS/SSL de SQL Server para la conexión. Los formatos de certificado permitidos son PEM, DER y CER. Si se especifica, el certificado de SQL Server se comprueba comprobando si el ServerCertificate proporcionado es una coincidencia exacta. (Solo disponible en v5.1 y versiones posteriores)

ServerSPN

Obtiene o establece el nombre de entidad de seguridad de servicio (SPN) del origen de datos.

TransactionBinding

Obtiene o establece un valor de cadena que indica cómo mantiene la conexión su asociación a una transacción System.Transactions dada de alta.

TransparentNetworkIPResolution

Cuando el valor de esta clave se establece en true, se requiere que la aplicación recupere todas las direcciones IP de una determinada entrada DNS e intente conectarse a la primera de la lista. Si la conexión no se establece en 0,5 segundos, la aplicación intentará conectarse a todas las demás en paralelo. Cuando la primera responda, la aplicación establecerá la conexión con la dirección IP encuestada.

TrustServerCertificate

Obtiene o establece un valor que indica si se va a cifrar el canal, al mismo tiempo que se omite recorrer la cadena de certificados para validar la confianza.

TypeSystemVersion

Obtiene o establece un valor de cadena que indica el sistema de tipos que espera la aplicación.

UserID

Obtiene o establece el identificador de usuario que se va a utilizar al conectarse a SQL Server.

UserInstance

Obtiene o establece un valor que indica si debe redirigirse la conexión de la instancia predeterminada de SQL Server Express a una instancia iniciada en tiempo de ejecución que se ejecuta en la cuenta del llamador.

Values

Obtiene un ICollection que contiene los valores de SqlConnectionStringBuilder.

WorkstationID

Obtiene o establece el nombre de la estación de trabajo que se conecta a SQL Server.

Métodos

Clear()

Borra el contenido de la instancia de SqlConnectionStringBuilder.

ContainsKey(String)

Determina si SqlConnectionStringBuilder contiene una clave específica.

Remove(String)

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

ShouldSerialize(String)

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

TryGetValue(String, Object)

Recupera un valor que corresponde a la clave proporcionada por este SqlConnectionStringBuilder.

Se aplica a