SqlConnectionStringBuilder Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 |
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 |
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 |
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 |
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 |
TransparentNetworkIPResolution |
Cuando el valor de esta clave se establece en |
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. |