Cadenas de conexión de ADO.NET

Una cadena de conexión contiene información de inicialización que se transfiere como un parámetro desde un proveedor de datos a un origen de datos. El proveedor de datos recibe la cadena de conexión como el valor de la propiedad DbConnection.ConnectionString. El proveedor analiza la cadena de conexión y garantiza que la sintaxis es correcta y que se admiten las palabras clave. A continuación, el método DbConnection.Open() pasa los parámetros de conexión analizados al origen de datos. El origen de datos realiza una validación adicional y establece una conexión.

Sintaxis de cadenas de conexión

Una cadena de conexión es una lista de pares de parámetros de clave y valor delimitados por punto y coma:

keyword1=value; keyword2=value;

En las palabras clave no se distingue entre mayúsculas y minúsculas. Sin embargo, los valores pueden distinguir entre mayúsculas y minúsculas, según el origen de datos. Las palabras clave y los valores pueden contener caracteres de espacio en blanco. Los espacios en blanco iniciales y finales se omiten en las palabras clave y los valores sin comillas.

Si un valor contiene un punto y coma, caracteres de control Unicode o un espacio en blanco inicial o final, debe incluirse entre comillas simples o dobles. Por ejemplo:

Keyword=" whitespace  ";
Keyword='special;character';

Es posible que el carácter envolvente no se encuentre dentro del valor que contiene. Por lo tanto, un valor que contenga comillas simples solo se puede incluir entre comillas dobles y viceversa:

Keyword='double"quotation;mark';
Keyword="single'quotation;mark";

También puede aplicar el escape al carácter envolvente utilizando dos de ellos juntos:

Keyword="double""quotation";
Keyword='single''quotation';

Las comillas, así como el signo igual, no requieren caracteres de escape, por lo que las siguientes cadenas de conexión son válidas:

Keyword=no "escaping" 'required';
Keyword=a=b=c

Puesto que cada valor se lee hasta el punto y coma siguiente o hasta el final de la cadena, el valor del último ejemplo es a=b=c, y el punto y coma final es opcional.

Todas las cadenas de conexión comparten la misma sintaxis básica que se ha descrito anteriormente. Sin embargo, el conjunto de palabras clave reconocidas depende del proveedor y ha evolucionado a lo largo de los años a partir de API anteriores, como ODBC. El proveedor de datos de .NET Framework para SQL Server (SqlClient) admite muchas palabras clave de API anteriores, pero suele ser más flexible y acepta sinónimos para muchas de las palabras clave de cadena de conexión comunes.

Los errores tipográficos pueden producir errores. Por ejemplo, Integrated Security=true es válido, pero IntegratedSecurity=true provoca un error.

Las cadenas de conexión construidas manualmente en el entorno de ejecución desde la entrada de usuario no validada son vulnerables a ataques de inyección de cadenas y ponen en peligro la seguridad en el origen de datos. Para solucionar estos problemas, ADO.NET 2.0 incorporó nuevos generadores de cadenas de conexión para cada proveedor de datos de .NET Framework. Estos generadores de cadenas de conexión exponen los parámetros como propiedades con establecimiento inflexible de tipos y permite validar la cadena de conexión antes de enviarla al origen de datos.

En esta sección

Generadores de cadenas de conexión
Muestra cómo usar las clases ConnectionStringBuilder para construir cadenas de conexión válidas en tiempo de ejecución.

Cadenas de conexión y archivos de configuración
Muestra cómo almacenar y recuperar cadenas de conexión en archivos de configuración.

Sintaxis de la cadena de conexión
Describe cómo configurar cadenas de conexión específicas de proveedor para SqlClient, OracleClient, OleDb y Odbc.

Proteger la información de conexión
Muestra técnicas de protección de la información utilizada para conectarse a un origen de datos.

Consulte también