Introducción
ADO.NET es el nombre colectivo de los módulos orientados al trabajo con bases de datos dentro de la plataforma .NET.
Nos permite interactuar con bases de datos para realizar operaciones básicas como crear, leer, modificar y borrar registros. También podemos ejecutar sentencias SQL, llamar funciones SQL y ejecutar procedimientos almacenados.
Casi todos los sistemas empresariales de gran tamaño necesitan bases de datos. Si debes guardar información de forma permanente y realizar consultas eficientes, debes recurrir a una base de datos.
El núcleo de ADO.NET ofrece un conjunto de objetos que ya traen implementados los métodos para trabajar con bases de datos:
- Connection: Establece la conexión con la base de datos
- Command: Ejecuta órdenes relacionadas con SQL
- DataSet: Conjunto de datos en memoria, una abstracción de la base de datos. Trabajar con un DataSet es similar a trabajar con una base de datos sin conexión. Incluye DataTable (tabla de datos) y DataRow (registro individual dentro de una tabla).
- DataReader: Lector de datos de solo lectura y avance secuencial
- DataAdapter: Adaptador de datos
Solo dominando ADO.NET podrás desarrollar sistemas empresariales completos. Muchas aplicaciones como sitios web dependen de bases de datos, por lo que vale la pena estudiarlo con atención.
Frameworks ORM como EF, iBatis, NHibernate y Linq to Entities se implementan sobre ADO.NET. También puedes desarrollar tu propio framework ORM apoyándote en ADO.NET.
Conexión a la base de datos
Connection crea el vínculo entre tu programa y la base de datos, actuando como puente para todas las operaciones de base de datos.
.NET ofrece la clase SqlConnection para gestionar conexiones de base de datos. Se encuentra en el espacio de nombres System.Data.SqlClient y forma parte del ensamblado System.Data.dll.
La mayoría de los tipos para interactuar con bases de datos están encapsulados dentro de este archivo dll.
Antes de abrir la conexión debes preparar la cadena de conexión de base de datos. Debes pasar esta cadena al instanciar el objeto SqlConnection.
SqlConnection conn = new SqlConnection(connectionString);Lenguaje del código: JavaScript (javascript)
Una cadena de conexión no es más que una cadena de texto normal, almacenada con el tipo string.
Ejemplos de cadenas de conexión para dos modos de autenticación
- Inicio de sesión con cuenta SA (autenticación de SQL Server)
"Data Source=.;Initial Catalog=NombreBaseDatos;User ID=sa;pwd=Contraseña;"Lenguaje del código: JSON / JSON con comentarios (json)
- Inicio de sesión con autenticación de Windows
Data Source=.;Initial Catalog=NombreBaseDatos;Integrated Security=TrueLenguaje del código: PHP (php)
La cadena de conexión se compone de varios elementos de configuración separados por punto y coma en inglés, con formato clave=valor.
Explicación de parámetros:
Data Source: Dirección del servidor de base de datos. Para bases locales usa.,localhosto127.0.0.1; para servidores remotos introduce la dirección IP o el nombre de dominio.Initial Catalog: Nombre de la base de datos de destinoUser ID: Cuenta de acceso a la base de datospwd: Contraseña de acceso a la base de datos
Nota:
User IDypwdno son campos obligatorios. Si usas el modo de inicio de sesión de Windows, configuraIntegrated Security=Truepara activar la seguridad integrada y no necesitas escribir usuario ni contraseña.
Cómo conectar con la base de datos en C#
private void button1_Click(object sender, EventArgs e)
{
string connectionString = "Data Source=.;Initial Catalog=db;User ID=sa;pwd=123321;";
// Instanciamos el objeto de conexión dentro del bloque using. Los recursos se liberan automáticamente al finalizar el bloque, no hace falta llamar a Close() manualmente
using (SqlConnection conn = new SqlConnection(connectionString))
{
// Abrir la conexión con la base de datos
conn.Open();
// Escribe aquí tu código para operaciones de base de datos
}
}Lenguaje del código: JavaScript (javascript)
Observaciones
conn.Open(): Abre la conexión de base de datos. Es necesario invocar este método para establecer realmente la conexión de red.- Ventaja de la sintaxis
using: al salir del bloque using, los recursos se liberan y la conexión se cierra automáticamente, evitando fugas de conexión. - Si no usas using, después de finalizar el trabajo debes llamar manualmente a
conn.Close()para cerrar la conexión.
Otros usos
//conn.Open(); // Abrir conexión
//conn.Close(); // Cerrar conexión manualmente
//conn.ConnectionString = connectionString; // Asignar cadena de conexión de forma dinámica
//conn.ConnectionString = ""; // Limpiar cadena de conexiónLenguaje del código: JSON / JSON con comentarios (json)
Introducción y conexión