lunes, 23 de julio de 2007

Visual Studio 2005 y su TableAdapter

Krlo [blackhat4all@gmail.com]

El trabajo con bases de datos es el pan de cada día para muchos de nosotros. Existen varias formas de hacerlo en dependencia de la plataforma en que estén montados nuestros datos y las herramientas que usemos para manipularlos. No me quedan dudas de que .NET brinda facilidades extraordinarias a la hora de trabajar.

En el Visual Studio 2005 apareció una herramienta llamada DataSet tipado (o con declaraciones de tipo), hereda directamente del anterior System.Data.DataSet, pero ahora las tablas con las que se conectan son tipos presentes en propiedades del DataSet. Vamos a verlo más despacio.

Insertar un DataSet en nuestro proyecto::

Luego de haber creado un proyecto (en mi caso una aplicación de consola en C#), vamos a agregarle un nuevo elemento. Tal y como aparece en la figura, seleccionamos DataSet.

Agregar nuevo elemento...

Al momento nos aparece en vista de diseño el espacio de trabajo del DataSet. Podemos agregarle desde la Caja de herramienta (ToolBox) un TableAdapter, que es el arroz con pollo de este trabajo. El mismo, como su nombre nos indica, es el encargado de adaptar la información de la base de datos a .NET. Ahora tenemos que configurarlo mediante un wizard (igual lo podemos hacer a mano). Estos son los pasos:

  1. Establecer la conexión a los datos. Para ello necesitamos el Connection String igual al que usamos al construir un objeto SqlConnection. Recordemos que tiene la forma: Data Source=<MiServidor>; Initial Catalog=<MiBaseDatos>; Integrated Security=True. También podemos configurar una nueva conexión y hacerlo pasito a pasito. Visual Studio en cualquier momento programa por nosotros.
  2. Luego definimos la manera en que el TableAdapter se conecta con la DB. Vamos a probar con sentencias SQL; de otra forma habría que hacerlo con procedimientos almacenados o creando unos nuevos.
  3. Ahora necesitamos definir cómo trabajan las sentencias anteriores. Primero seleccionamos dónde está la flecha roja para especificar todos los campos marcados, como aparece en la figura siguiente. En la flecha azul construiremos la consulta.


  4. Asistente de configuración del TableAdapter.

  5. La consulta pudiera ser SELECT * FROM TABLA_X;. Es importante incluir los campos llaves de la tabla si queremos poder actualizar los datos de la base de datos cuando los modifiquemos en tiempo de ejecución.
  6. El próximo paso, ya casi al terminar, es especificar los métodos que queremos que tenga nuestro TableAdapter. Incluya ambos: Fill() y Update(). Después nos mostrará los resultados del asistente y ya estaremos listos para trabajar con el DataAdapter.

Tabla "Alerta" con su adaptador.

Al concluir el wizard podremos tener un objeto como el que aparece en nuestra figura. "Alerta" sería el DataTable que referencia a la tabla dentro de mi base de datos. AlertaTableAdapter nos queda claro lo que es.

Para poder usar nuestros objetos debemos incluir el namespace DataSet1TableAdapters, ubicado dentro del namespace actual de nuestro proyecto. Si trabajamos en una aplicación Windows, nos aparecerá en el Toolbox de la vista de diseño y sólo tendremos que incluirlo y nombrarlo. Seguimos con la vía anterior:

AlertaTableAdapter alerta = new AlertaTableAdapter() ;
DataSet1.AlertaDataTable tabla = new DataSet1.AlertaDataTable() ;
alerta.Fill(tabla) ;

En estos momentos acabamos de llenar la tabla de tipo AlertaDataTable con los datos correspondientes de ejecutar la consulta SQL definida anteriormente. El objeto tabla tiene propiedades muy interesantes como Rows que devuelve una colección con todas las filas de la misma. Podemos indexar de la forma tabla[3][6] y de esta forma acceder a cualquier elemento. De más está decir que tiene métodos para buscar, insertar, y eliminar elementos de la tabla. Es sin duda una forma práctica de trabajar con estos datos.

La mejor parte es que cuando terminemos de trabajar con la tabla, podemos guardar todos sus cambios.

alerta.Update(tabla) ;

Conclusiones::

Hemos visto lo fácil que podemos hacer una conexión a una base de datos, y muy por arriba todas las ventajas que brinda manipular esos datos como objetos. Mediante la utilización de objetos DataSet con declaración de tipos, disponemos de una manera fácil y eficaz de actualizar una base de datos utilizando el modo desconectado que nos dispensa ADO.NET. Espero que el artículo haya sido de su interés, sobre todo, para los nuevos usuarios que están comenzando con el diseño de aplicaciones de bases de datos utilizando Visual Basic 2005.



Artículos relacionados


No hay comentarios: