Lista de Artículos Pagina de Inicio
- Año III  







El acceso a Datos en ASP.NET Whidbey (Parte 1 / 3)

Juan Manuel A. Herrera Pastor / juan_herrera(at)informatizate(dot)net / Febrero 16 del 2005.

GRUPO GESFOR OSMOS PERU S.A. Ing. Informatico
Microsoft Certified Professional
Microsoft Certified Solution Developer
Microsoft Certified Application Developer
Microsoft Certified Solution Developer for .NET
Microsoft Certified Database Administrator (MCDBA)



Resumen: Acceder a datos usando ASP.NET Whidbey es mucho más facil que en versiones anteriores del Visual Studio. Los nuevos controles DataSource nos ayudarán a conectarnos a diversas fuentes de datos como: Microsoft SQL Server, Microsoft Access, XML u objetos de la capa intermedia de negocios. En este artículo se verá la utilizacion de estos nuevos controles.


Introducción

Uno de los objetivos que se trata de alcanzar con la versión de ASP.NET "Whidbey" es una reducción no menor del 70% en la cantidad de código requerido para construir Aplicaciones Web. Para muchos de los escenarios, el objetivo es no tener que escribir ni una línea de código.

Para obtener este 70% de reducción en el código, el equipo de desarrollo de ASP.NET tuvo que analizar los escenarios comunes con los que los desarrolladores trabajan a diario. No es sorpresa que el equipo de ASP .NET notara que siempre que ellos encontraban un Sitio Web, ellos tipicamente encontraban una base de datos con la cual trabajaba el Sitio Web.

Con ASP .NET 1.0 ó 1.1, teniamos que codificar para conectarnos a una fuente de datos, obtener sus datos y actualizar la base de datos con nuestros cambios. Nosotros podiamos escribir directamente este código ó lo podiamos generar mediante un asistente. ASP .NET Whidbey busca reducir todo el código, incluyendo el generado por los asistentes. Para lograr esto, ASP.NET Whidbey encapsula una gran parte de la funcionalidad requerida en nuevos controles.


Los controles DataSource

Los controles DataSource nos permiten declarativamente conectarnos a bases de datos, a archivos de XML, y a otras fuentes de datos. Estos controles contienen la lógica necesaria para obtener datos desde las fuentes de datos, así como también para colocar nuestros cambios en ellas. Esto elimina una de las razones más comunes para escribir código. Tan pronto como se añade un control, como un DropDownList, a un formulario, la integración con los controles DataSource llegará a ser obvia:


Figura 1. Añadiendo un control que puede ligarse a datos.


En la imagen anterior se puede observar que apenas añadimos el control DropDownList al formulario se nos sugiere conectar este control a una fuente de datos. Haciendo click en "Connect to DataSource" se iniciará un asistente que te guiará a través del proceso. La primera página del asistente te permitirá indicar si quieres usar una fuente de datos existente, ó crear una nueva.


Figura 2. Seleccionando una fuente de datos


Los controles DataSource no son sólo utilizados con Microsoft® SQL Server™. También puedes usarlos con Microsoft® Access, DataSet, Object (el cual puede ser usado para tus propios objetos de negocio), XML y SiteMap como fuentes de datos. En este ejemplo, una fuente de datos SQL Server será creada, para lo cual debes llenar los campos apropiados, y hacer click en el botón Create....

A continuación, se nos pide que escojamos una conexión existente ó que creemos una nueva. Este y mucho de los diálogos siguientes serán diferentes dependiendo del tipo de fuente de datos que se este usando. En este caso, no hay conexiones existentes, así que crearemos una nueva.


Figura 3. Conectando a SQL Server.


Como lo demuestra la imagen anterior, algunas cosas nunca cambian. Desde esa ventana puedes especificar la información para la conexión, la cual es transformada en la cadena de conexión apropiada.

Después de esto, se te mostrará un cuadro de diálogo donde se ingresarán las sentencias SQL para las operaciones de selección, inserción, actualización y eliminación. Para este ejemplo, solamente digitaremos una sentencia de selección:


Figura 4. Configurando sentencias SQL


La última pregunta que se nos hará es si queremos ejecutar la consulta en ese momento de manera que la información del esquema pueda ser obtenida. Obteniendo la información del esquema, los nombres de las columnas serán conocidos, lo cual es útil cuando ligamos datos a los controles.

Una vez que se haga click en el botón Finish, el control DataSource ha sido construido, y se puede ligar el control DropDownList al control DataSource. Debido a que la información de esquema ha sido obtenida, es fácil escoger el campo que se quiere mostrar y el campo que contiene los valores.


Figura 5. Configurando el control DropDownList


También es destacado mencionar que ahora las Aplicaciones Web hechas en ASP.NET no necesitan un proyecto, en otras palabras que la Aplicación Web es simplemente definida por los archivos que se encuentran en el folder del Sitio Web. Esto significa que cuando nosotros grabamos una página, la aplicación está lista para ejecutarse sin compilación. Además si nosotros presionamos F5 ó CTRL + F5, la página que se encuentra abierta en el diseñador y con la que actualmente estamos trabajando será mostrada en el Internet Explorer. Ya no existe la opción "Set as start page".


Figura 6. El control DropDownList ligado a Datos.



Consultas Parametrizadas y el control Grid View

La mayoría de los escenarios son mas complicados que un simple "Select * from Customers". Frecuentemente, contamos con un procedimiento almacenado o con una consulta que tiene parámetros. Por ejemplo, podemos tener una página de productos que muestre la información de un producto basado en un identificador del producto. Como veremos, el control DataSource da soporte total a este escenario.

Para ilustrar esto, un control GridView (desde la lengüeta Data en la caja de herramientas) es añadida a la página. El control GridView es el sucedor del control DataGrid. Al igual que el control DropDownList, el control GridView también nos permite conectarnos a una fuente de datos.

En este punto, es importante entender que es un control DataSource, o más importante, que es lo que no es. No es una conexión. Se parece mas a una conexión con un comando. El control GridView mostrará información basado en el cliente que fue seleccionado en el control DropDownList. El control DataSource que será utilizado por el control GridView usará la misma conexión a la base de datos creada anteriormente para el control DropDownList, pero utilizará una sentencia SELECT diferente, en la que se obtendran ordenes y no clientes. De manera que, después de hacer click en Connect to DataSource en el menú desplegable del control GridView, deberíamos escoger la opción New DataSource.

Procedemos a crear la conexión como lo hicimos anteriormente, no obstante, esta vez especificaremos una consulta parametrizada.

select * from orders where customerid=?

Hasta ahora, esto parece perfecto. Hemos creado un control DropDownList que nos permitirá escoger un cliente, y basado en el ID de este cliente, obtendremos sus ordenes. Para realizar esta operación se ha creado una consulta parametrizada, pero hay algo que nos falta. Necesitamos obtener el cliente seleccionado y transferirlo a la consulta parametrizada. Se puede llegar a pensar que esto requiere código, pero este no es el caso. En el cuadro de diálogo Query Editor, simplemente haremos click en el botón Infer Parameters.


Figura 7. Añadiendo parámetros a una consulta


En el diálogo anterior, podemos especificar que el valor para el parámetro de la consulta será obtenido del control DropDownList. Especificamente, indicamos que la fuente del parámetro es un control (la fuente del parámetro puede ser un query string, una cookie, un campo de un formulario ó una variable de sesión). Especificamos el ID del control, en este caso DropDownList1, e indicamos que la propiedad SelectedValue debería ser usada. Crealo o no, esto es todo. Si presionamos CTRL + F5, la siguiente página se muestra. Podemos seleccionar clientes y sus ordenes aparecerán:


Figura 8. Vista ligada a datos.


Comenta éste artículo en el foro de informatizate.




   


Google


Copyright © 2002-2005 Grupo Informatizate. Reservados todos los derechos.
Prohibida la reproducción total o parcial en cualquier formato sin previa autorización.
On-line desde el 27 de Noviembre del 2002