La conectividad de bases de datos se ha convertido en un aspecto estándar del desarrollo de aplicaciones. Las cadenas de conexión de bases de datos son ahora un estándar imprescindible para cada proyecto. A menudo me encuentro copiando una cadena de conexión de otra aplicación o realizando una búsqueda para encontrar la sintaxis que necesito. Esto es especialmente cierto cuando se interopera con SQL Server, que tiene tantas opciones de cadenas de conexión. Ahora examinemos los muchos aspectos de las cadenas de conexión.
cadena de conexión
Durante la instanciación o creación de un objeto, la cadena de conexión de la base de datos se pasa al objeto necesario a través de propiedades o métodos. El formato de la cadena de conexión es una lista delimitada por punto y coma de pares de parámetros clave/valor. El Listado A incluye un ejemplo en C# que ilustra cómo conectarse a SQL Server creando un objeto SqlConnection (la cadena de conexión real se asigna a través de la propiedad ConnectionString del objeto). En el Listado B se incluye la versión de VB.NET.
Lista A
string cString = "Fuente de datos=servidor;Catálogo inicial=db;ID de usuario=prueba;Contraseña=prueba;";
SqlConnectionconn = nueva SqlConnection();
conn.ConnectionString = cString;
conexión.Open();
Lista B
Dim cString como cadena
cString = "Fuente de datos=servidor;Catálogo inicial=db;ID de usuario=prueba;Contraseña=prueba;"
Conexión tenue como SqlConnection = Nueva SqlConnection()
conexión.ConnectionString = cString
conexión.Abrir()
La cadena de conexión especifica el servidor de la base de datos y la base de datos, así como el nombre de usuario y la contraseña necesarios para acceder a la base de datos. Si bien este formato no es adecuado para todas las interacciones de bases de datos, tiene muchas opciones disponibles, muchas de las cuales tienen sinónimos.
Junto con los elementos Fuente de datos, Catálogo inicial, ID de usuario y Contraseña, están disponibles las siguientes opciones:
Nombre de la aplicación: el nombre de la aplicación. Si no se especifica, su valor es el proveedor de datos .NET SqlClient.
AdjuntarDBFilename/propiedades extendidas/Nombre de archivo inicial: el nombre del archivo principal que se puede conectar a la base de datos, incluido el nombre de la ruta completa. El nombre de la base de datos debe especificarse con la palabra clave base de datos.
Tiempo de espera de conexión/Tiempo de espera de conexión: el tiempo (en segundos) que espera una conexión al servidor antes de finalizar. El valor predeterminado es 15.
Vida útil de la conexión: cuando una conexión se devuelve al grupo de conexiones, su hora de creación se compara con la hora actual. Si este lapso de tiempo excede el período de validez de la conexión, la conexión se cancela. Su valor predeterminado es 0.
Restablecimiento de conexión: indica si una conexión se restablece cuando se elimina del grupo de conexiones. Una validez falsa elimina la necesidad de un viaje de ida y vuelta adicional del servidor al obtener una conexión, y su valor predeterminado es verdadero.
Idioma actual: el nombre del registro de idioma de SQL Server.
Fuente de datos/Servidor/Dirección/Dirección/Dirección de red: el nombre o dirección de red de la instancia de SQL Server.
Cifrar (cifrado): cuando el valor es verdadero, SQL Server utilizará el cifrado SSL para todos los datos transferidos entre el cliente y el servidor si el servidor tiene un certificado autorizado instalado. Los valores aceptados son verdadero, falso, sí y no.
Alistar (registro): indica si el programa del grupo de conexiones registrará automáticamente la conexión en el contexto de transacción actual del hilo de creación. Su valor predeterminado es verdadero.
Base de datos/Catálogo inicial: el nombre de la base de datos.
Seguridad integrada/conexión confiable: indica si se utiliza la autenticación de Windows para conectarse a la base de datos. Se puede establecer en verdadero, falso o el equivalente sspi de verdadero. Su valor predeterminado es falso.
Tamaño máximo del grupo (capacidad máxima del grupo de conexiones): el número máximo de conexiones permitidas por el grupo de conexiones. Su valor predeterminado es 100.
Tamaño mínimo del grupo (capacidad mínima del grupo de conexiones): el número mínimo de conexiones permitidas por el grupo de conexiones y su valor predeterminado es 0.
Biblioteca de red/Net: Biblioteca de red utilizada para establecer una conexión a una instancia de SQL Server. Los valores admitidos incluyen: dbnmpntw (canalizaciones con nombre), dbmsrpcn (multiprotocolo/RPC), dbmsvinn (Banyan Vines), dbmsspxn (IPX/SPX) y dbmssocn (TCP/IP). La biblioteca de vínculos dinámicos del protocolo debe instalarse para la conexión adecuada; su valor predeterminado es TCP/IP.
Tamaño de paquete: el tamaño de los paquetes de red utilizados para comunicarse con la base de datos. Su valor predeterminado es 8192.
Contraseña/Contraseña: La contraseña correspondiente al nombre de la cuenta.
Información de seguridad persistente: se utiliza para determinar si la información de seguridad está disponible una vez que se establece la conexión. Si el valor es verdadero, los datos sensibles a la seguridad, como nombres de usuario y contraseñas, están disponibles, mientras que si el valor es falso, no están disponibles. Restablecer la cadena de conexión reconfigurará todos los valores de la cadena de conexión, incluida la contraseña. Su valor predeterminado es falso.
Agrupación: determina si se utilizará la agrupación de conexiones. Si es verdadero, la conexión se obtendrá del grupo de conexiones apropiado o, si es necesario, la conexión se creará y agregará al grupo de conexiones apropiado. Su valor predeterminado es verdadero.
ID de usuario: el nombre de la cuenta utilizada para iniciar sesión en la base de datos.
ID de estación de trabajo: el nombre de la estación de trabajo conectada a SQL Server. Su valor predeterminado es el nombre de la computadora local.
La siguiente cadena de conexión establece una conexión a la base de datos Northwind en el servidor TestDev1 usando una conexión confiable y credenciales de inicio de sesión especificadas (menos segura que dejar la contraseña del administrador en blanco): Servidor=TestDev1;Base de datos=Northwind;ID de usuario=sa ;
Contraseña=;Trusted_Connection=Verdadero;
La siguiente cadena de conexión utiliza TCIP/IP y una dirección IP específica:
Fuente de datos=192.162.1.100,1433;Biblioteca de red=DBMSSOCN;
Catálogo inicial=Northwind;ID de usuario=sa;Contraseña=;
Las opciones utilizadas se pueden incluir fácilmente en la cadena de conexión, pero nuevamente dependen de su aplicación y sus requisitos. Es bueno saber qué hay disponible para poder utilizarlo adecuadamente.
Usando ADO.NET 2.0
ADO.NET 2.0 introduce nuevos generadores de cadenas de conexión para cada proveedor de datos de .NET Framework. Las palabras clave se enumeran como atributos, lo que permite que la sintaxis de la cadena de conexión surta efecto antes de enviarse a la fuente de datos. También hay nuevas clases que facilitan almacenar y recuperar cadenas de conexión en archivos de configuración y cifrarlas de forma protegida.