PRÁCTICA DE ADO.NET
ACCESO A DATOS
Una base de datos (BD) es una colección de datos clasificados y estructurados que
son guardados en uno o varios archivos pero referenciados como si de un único
archivo se tratara. Para crear y manipular bases de datos relacionales, es
importante mencionar que existen en el mercado varios sistemas administradores
como: Access, SQL Server, Oracle y DB2. Otros, que son de libre distribución son:
MySQL y PostgreSQL.
Los datos de una BD se almacenan en tablas lógicamente relacionadas
entre sí, utilizando campos claves comunes. A su vez, cada tabla está compuesta
de filas (tuplas o registros) y columnas (campos).
Se pueden realizar distintas operaciones sobre una BD como: insertar,
recuperar, modificar y eliminar datos, así como añadir tablas o eliminarlas. Estas
operaciones se expresan generalmente en un lenguaje denominado SQL.
SQL
Es el lenguaje estándar para interactuar con BD relacionales, y es soportado
prácticamente por todos los sistemas administradores de bases de datos actuales.
Algunos tipos de datos más utilizados son los siguientes:
Tipo SQL Tipo SQL de .NET Framework
INTEGER SqlInt32
REAL SqlSingle
FLOAT SqlDouble
CHAR SqlString
VARCHAR SqlString
BINARY SqlBinary
DATE SqlDateTime
La cláusula DEFAULT permite especificar un valor por omisión para la
columna y, opcionalmente, para indicar la forma o característica de cada columna,
se pueden utilizar las constantes: NOT NULL(no se permiten valores nulos: NULL),
UNIQUE o PRIMARY KEY.
La cláusula PRIMARY KEY se utiliza para definir la columna como clave
principal de la tabla. Esto supone que la columna no puede contener valores nulos
ni duplicados; es decir, que dos filas no pueden tener el mismo valor en ese campo.
Una tabla puede contener una sola restricción PRIMARY KEY.
La cláusula UNIQUE indica que la columna no permite valores duplicados;
es decir, que dos filas no pueden tener el mismo valor en ese campo. Una tabla
puede contener varias restricciones UNIQUE. Se suele emplear para que el propio
sistema compruebe que no se añaden valores que ya existen.
ADO.NET
Muchas de la aplicaciones, distribuidas o no, trabajan sobre bases de datos. Por
esta razón, Microsoft decidió crear una tecnología de acceso a datos potente y fácil
de utilizar: ADO.NET.
ADO.NET no depende de conexiones continuamente activas, esto es, se
diseñó en torno a una arquitectura donde las aplicaciones se conectan a la BD sólo
durante el tiempo necesario para extraer o actualizar la información. Los datos
requeridos, normalmente se almacenan en memoria caché en conjunto de datos, lo
que permite trabajar sin conexión sobre una copia temporal. Cuando sea necesario,
se puede restablecer la conexión con la BD y actualizarla desde el mismo conjunto
de datos.
ADO.NET es un conjunto de clases, pertenecientes al espacio de nombres
System.Data para el acceso a los datos de un origen. Dicho de otra forma,
ADO.NET proporciona un conjunto de componentes para crear aplicaciones
distribuidas de uso compartido de datos. Dichos componentes están diseñados
para separar el acceso a los datos de la manipulación de los mismos, que son:
DataSet y el proveedor de datos de .NET Framework, que es un conjunto de
componentes entre los que se incluyen los objetos de conexión (Connection), de
órdenes (Command), lector de datos (DataReader) y adaptador de datos
(DataAdapter), mismo que a continuación se describirán.
En ADO.NET el componente central de la arquitectura sin conexión, es la
clase de objetos DataSet (conjunto de datos), que se puede utilizar con múltiples y
distintos orígenes de datos.
Proveedor de datos
En .NET Framework, sirve como un puente entre una aplicación y un origen de
datos. Se utiliza tanto para recuperar información, como para actualizarla.
Los componentes principales de un proveedor de datos .NET son los objetos
siguientes:
Conexión con el origen de datos (objeto Connection). Establece un vínculo
a un origen determinado.
Orden para acceso a los datos (objeto Command). Ejecuta una orden en un
origen de datos.
Lector de datos (objeto DataReader). Lee una secuencia de datos de sólo
avance y sólo lectura desde un origen de datos.
Adaptador de datos (objeto DataAdapter). Llena un DataSet y realiza las
actualizaciones necesarias en el origen de datos.
… Después de un “poco” de teoría, se desarrollará una práctica donde se aplicarán
los términos antes vistos.
En primer lugar se debe crear una base de datos (figura 1) en SQL Server
llamada Alumnos, la cual contendrá una tabla denominada Datos con las
especificaciones que se muestran en la figura 2:
Figura 1. Creación de la BD Alumnos
Figura 2. Diseño de la tabla Datos
Proveedor de datos .NET
Connection
Command
DataReader
DataAdapter Transaction
Parameters
SelectCommand
InsertCommand
UpdateCommand
DeleteCommand
Es importante notar que la columna No_Control está como llave primaria.
Una vez que se tiene la BD, se debe crear un proyecto en VB.NET.
En el formulario se agrega un control DataGridView perteneciente a la
sección Datos del cuadro de herramientas (Cambiar nombre a dgDatos).
Se deben definir los objetos de ADO.NET pero antes, es necesario importar
un par de espacios de nombres, tal como lo muestra la figura 3.
Figura 3. Definición de objetos
Posteriormente se crea un método para iniciar los componentes creados
(Figura 4). Aquí mismo se realiza la conexión a la BD, el primer parámetro hace
referencia al servidor (que toma el nombre del equipo) y el segundo a la BD.
Figura 4. Creación de método IniciarComponentes
Realizar otro método para obtener y mostrar los datos en el control
DataGridView, definiendo el nombre que se mostrará para cada una de las
columnas (figura 5).
Figura 5. Creación de ObtenerMostrarDatos
Así que se han creado los métodos anteriores, deben mandar a llamarse en
el evento load del formulario.
Finalmente, en el evento FormClosing se desarrollará el siguiente código
para realizar las operaciones de seleccionar, insertar, eliminar y actualizar.
Si todo se hizo correctamente y se presiona F5, se notará que las acciones
se ejecutan al cerrar el formulario; es decir, los cambios que se hagan en el control
DataGridView se efectuarán en la BD en el momento en que se cierre la aplicación.