Sei sulla pagina 1di 61

1

Presentacin del Curso: Aplicaciones y Servicios Web con ASP .Net y SQL Server 2000
Esta es una de nuestras primeras publicaciones que presentamos como un estudio. A diferencia de los libros tradicionales, usted podra complementar su estudio a travs de nuestra Escuela virtual, dirigido por el mismo autor de la publicacin, rendir sus evaluaciones y obtener la Certificacin de haber aprobado el curso por parte de nuestra empresa, Estudie cmodamente en casa, en la oficina o desde una cabina pblica, en el horario que usted disponga y con la frecuencia que decida, necesita de un Servidor para hacer las pruebas Como parte de los recursos para su estudio le proporcionamos una cuenta de hosting en nuestros servidores (Plan EducaVirtual), por el tiempo que d ure su estudio. Asi podr acceder a: Biblioteca de recursos, Programas, Foros, Soporte en lnea, acceso a la Escuela Virtual, etc.

Caractersticas del Plan EducaVirtual


Subdominio Servidor basado en Windows 2000 Server Internet Information Server Soporte ASP .Net Base de Datos: SQL Server Acceso FTP 6 meses de servicio Acceso a la Escuela Virtual Evaluacin y Certificacin Inversin: 20 dolares Las tecnologas en la actualidad nos permiten salir de nuestras fronteras no solamente en el aspecto de capacitacin sino tambin en los negocios. Estoy seguro que a la conclusin del estudio del presente curso, y con la tutoria de Juan Carlos Heredia, autor del presente libro, en poco tiempo estar dispuesto para ser consultor en soluciones tecnolgicas basadas en tecnologas web usando ASP .Net y SQL Server 2000.

Hagamos negocios
Nuestra propuesta es que usted sea nuestro socio de negocios, dediquese a proponer la solucin y nosotros nos hacemos cargo de ofrecerle el respaldo tecnolgico. Por cada cuenta que usted aperture con nosotros para sus clientes, usted se har acreedor a bonos, los que puede canjearlos por efectivo o por alguno de nuestros servicios (ver detalle en www.grapperusoft.com)

Hosting Comercial
Implementar una aplicacin Web supone publicarla en un Servidor, disponer de uno propio implica la adquisicin de los equipos, una lnea dedicada de buen ancho de banda, software, personal especializado que se haga cargo de la seguridad, mantenimiento, respaldo, etc. Para la mediana o microempresa representara una inversin considerable (no menos de unos 15 mil dolares), ante ello existe una alternativa: Hosting.

El servicio de Hosting consiste en alquilar un espacio en un servidor. Por una inversin mnima adquiera una cuenta con todas las caractersticas necesarias para publicar su aplicacin, deje en nuestras manos el soporte tecnolgico y dediquese usted a sus clientes.

Nuestros Planes de Hosting Comercial incluyen:

Windows 2000 Server Internet Information Server n Cuentas de correo Servidor Anti Virus Servidor POP3 Servidor SMTP Anti Spam Anti Virus Autorespondedores E-mail Panel de Control Web Mail Listas de Correo Soporte ASP .Net Base de Datos: Access y SQL Server 2000 Redireccionamiento Respaldo de Datos en Lnea Estadisticas completas Extensiones FrontPage Soporte Shockwave/Flash Pginas de error personalizables Aplicaciones pre-instaladas: Chat, Foros, Tienda Electrnica

Bondades del Servicio


La plataforma de Servicios est compuesta de robustos servidores de ltima tecnologa con un sistema de respaldo de datos automatizado Nuestros conceptos de seguridad de alta disponibilidad aseguran mxima privacidad con la utilizacin de unidades de Firewall El respaldo de energa se encuentra debidamente asegurados, lo que garantiza el servicio los 7 das a la semana, las 24 horas al da y los 365 dias del ao. Soporte tcnico especializado, para atender los requerimientos de nuestros clientes 24 horas al da 7 das a la semana Capacitacin Velocidad de Acceso acorde a las necesidades de su compaia. Revise nuestros planes en http://www.grapperusoft.com Con la seguridad de ofrecerle nuestros mejores servicios, quedamos a su disposicin.

Csar Bustamante Gerente General GrapPeru SAC http://www.grapperusoft.com soporte@grapperusoft.com grapperu@hotmail.com

INTRODUCCIN
Todo programa computacional (software) est basado en el principio de la manipulacin de informacin. Hoy, encontramos aplicaciones computacionales sofisticadas que almacenan su informacin en una Base de Datos, un repositorio de informacin controlada por un Sistema de Administracin de Base de Datos o DBMS (DataBase Management System). Un DBMS se encarga de dos cosas: primeramente, controla el almacenamiento de la informacin, y en segundo lugar, provee mecanismos para consultar y mantener la informacin, es decir, agregar, eliminar y actualizar datos. Un DBMS se empea en cumplir estas dos funciones bsicas de la manera ms eficiente posible. Con el pasar de los aos, el mercado de los DBMS ha madurado y se ha sofisticado, ofreciendo productos diseados para el uso de grandes entornos empresariales como es el caso de Oracle 9i o Microsoft SQL Server 2000, y tambin par entornos mas pequeos o personales como Microsoft Access. En algunos casos, incluso nos encontramos con paquetes de software que incluyen su propio DBMS para la administracin de propia su base de datos. En su trabajo cotidiano como desarrollador o programador se dar cuenta que las aplicaciones por lo general requieren que la informacin sea administrada por un DBMS. En realidad, debe saber que el uso de un DBMS es la manera ms fcil de administrar y manipular la informacin de su aplicacin. Sin embargo, la gran pregunta es, Qu DBMS se debe usar?, debido a que en el mercado actual existen una gran variedad de proveedores de estas soluciones. Cmo podemos desarrollar un programa que trabaje con cualquier base de datos que nuestro cliente pueda elegir? El truco est en desarrollar una aplicacin que trabaje con una Capa de acceso a los datos de cualquier tipo. En vez de crear un programa que requiera de un DBMS especfico, se puede crear un programa que acceda a esa capa.

Entonces es responsabilidad de la capa convertir a modo nativo las llamadas que el DBMS usa. Microsoft le llama a esta visin Universal Data Access (UDA Acceso Universal de Datos). La ltima herramienta para el UDA es ADO.NET, que consiste en un consistente grupo de objetos que trabajan en conjunto para montar la capa de acceso a los datos. El presente libro abarcar sobre la construccin de aplicaciones Web con SQL SERVER 2000 y ASP.NET que conjugan con el poder de ADO.NET.

A quin va dirigido este libro?


Este libro est orientado a analistas y programadores con cierta experiencia bsica en programacin con cualquier lenguaje de programacin, de preferencia en Visual Basic, quienes desean iniciarse en el desarrollo de aplicaciones Web con Bases de Datos. Sera til si se tiene alguna experiencia con Microsoft Access, aunque esto no es estrictamente necesario. Se debe tener en cuenta que este libro no es una introduccin a ASP.NET con Visual Studio .NET, por lo que se recomienda la revisin de otros materiales o libros que permitan su iniciacin en estos temas. As mismo, el presente libro no aspira a que los programadores en Visual Basic 6 experimenten de inmediato todos los cambios existentes entre VB6 y VB.NET.

Qu temas se cubren este libro?


??El SQL Server - Desktop Engine. ??Creacin de Base de Datos en SQL desde Access. ??Consultas de Base de datos con T-SQL ??Uso del explorador de S ervidores del Visual Studio .NET, para ejecutar consultas, vistas, procedimientos almacenados, etc. ??ADO.NET y el objeto DATASET. ??El rol del XML en ADO.NET. ??Aplicaciones Internet usando Web Forms y Web Services con ASP.NET ??Desarrollo de una aplicacin Web real. ??Instalacin de un Sitio Web de Comercio Electrnico como ejemplo. ??Distribucin e Instalacin de una aplicacin Web.

Qu se necesita para usar este libro?


Todo lo que se necesita es una PC que tenga instalado: ??Windows 2000, XP (Profesional o Server). ??IIS 5 o 6, el cual viene con Windows 2000 y Windows XP respectivamente. ??Internet Explorer o cualquier otro explorador del Web. ??Access 2000 - XP o superior ??Visual Studio .NET Cualquiera de versiones o ediciones. ??SQL Server 2000 o el Desktop Engine, que viene con el Visual Studio .NET

Contenido del CD
El CD que acompaa a este libro, contiene los archivos de ejemplo y demostracin, descritos en el libro. Adems contiene algunas otras herramientas tiles. Vea el contenido

del archivo Leame.txt ubicado en la raz del CD para mayor informacin.

Soporte
Definitivamente valoramos las opiniones de nuestros lectores y nos gustara saber qu es lo que piensa sobre este libro, qu no le gust, y qu es lo que le gustara que consideremos para la prxima oportunidad. Nos puede enviar sus comentarios ya sea a travs de nuestro sitio Web (http://www.grapperusoft.com).

Errata
Se ha hecho todo el esfuerzo necesario a fin de que no hayan errores en el texto o en el cdigo de ejemplo. Sin embargo nadie es perfecto y quizs encuentre errores. Si encuentra algn error ortogrfico o en alguna parte del cdigo, estaremos gustosos de saberlo. De esta manera nos estar ayudando a dar un mejor soporte a travs de nuestro sitio Web, a los futuros lectores.

10

CAPITULO I Microsoft SQL Server Desktop Engine

11

Microsoft SQL Server 2000 - Desktop Engine


Para el desarrollo de la Base de Datos usada en este libro se utilizar el Microsoft SQL Server 2000 - Desktop Engine, que viene incluida en el Visual Studio .NET. Antes de ir de lleno a este tema, vale la pena entender primero qu es el Microsoft SQL Server?, qu ediciones estn disponibles? y cul es la diferencia entre el Desktop Engine que usaremos en este libro con las dems ediciones?

Definicin de Microsoft SQL Server 2000


Microsoft SQL Server 2000 es un sistema de administracin de base de datos relacionales que puede ser usado por tanto por usuarios individuales como por empresas o negocios para el almacenamiento y la administracin de su informacin. Tambin ofrece poderosas funcionalidades para reportes y el anlisis de los datos. Actualmente se tiene para elegir entre siete ediciones del Microsoft SQL Server 2000. Dos de ellas, la edicin Estndar y Empresarial, son para ponerlos en servidores de produccin (servidores principales de una organizacin o empresa). Cada cual de las otras 5 versiones, tienen un propsito especfico y no tienen licencia para ponerlos en servidores de produccin. He aqu una descripcin concreta de cada una de estas versiones: SQL Server 2000 Enterprise Edition sta es la edicin ms completa del producto y es la ms apropiada para grandes organizaciones que necesitan administrar rpida y eficientemente grandes cantidades de informacin. SQL Server 2000 Standard Edition sta edicin contiene la mayora de las caractersticas disponibles, con la notable excepcin de aquellas que habilitan la rpida y eficiente administracin de grandes cantidades de informacin. Por consiguiente, sta versin va dirigida para medianas y

12

pequeas empresas cuya cantidad de informacin no es muy grande o extensa. No obstante, esta versin, es extremadamente poderosa que contiene los servicios de anlisis de datos (con algunas excepciones), replicacin, bsqueda Full-text, Servicios de transformacin de datos, English Query y otras caractersticas avanzadas. SQL Server 2000 Personal Edition sta edicin contiene bsicamente las mismas caractersticas de la edicin estndar, a excepcin de la replicacin transaccional. Adicionalmente, los servicios de anlisis y de bsqueda fulltext solo estn disponibles en ciertos sistemas operativos. Esta es la edicin ms apropiada para usuarios que usan muchas veces sus computadoras desconectadas de la red y manipulan sus datos localmente. Un caso comn seran los usuarios mviles por ejemplo, cuando los vendedores de una empresa necesitan la base de datos en sus equipos porttiles cuando estn de viaje. Esta versin limita el nmero de conexiones y procesos concurrentes que pueden estar ejecutndose a la vez. Esto significa que no est diseada para controlar gran cantidad de usuarios o muchos procesos en la base de datos. SQL Server 2000Windows CE Edition sta edicin corre en dispositivos mviles que usan Windows CE. Es una versin compacta del SQL Server y permite que las base de datos relaciones puedan ser almacenadas y administradas en un dispositivo Windows CE para posteriormente sincronizarla con la Base de datos principal de la organizacin. Tambin permite administrar una base de datos remotamente va Internet desde el dispositivo mvil. SQL Server 2000 Developer Edition sta edicin contiene todas las caractersticas del Enterprise Edition, con la condicin de que no sea instalada en un servidor de produccin. Como el nombre lo indica, sta versin est diseada para los analistas, consultores y desarrolladores o programadores, cuando desarrollan o prueban una aplicacin SQL.

13

SQL Server 2000 Evaluation Edition sta versin es completamente funcional como la del Enterprise Edition que se puede ejecutar durante 120 das. Permite que las organizaciones evalen el producto completo sin costo. SQL Server 2000 Desktop Engine sta es una versin redistribuible. Quiere decir que se puede incluir en las instalaciones de sus programas desarrollados que usan o almacenan datos de SQL Server. Esta versin no incluye ninguna de las herramientas de administracin grfica como por ejemplo el Administrador Corporativo, por lo tanto otros productos (como Visual Studio .NET Server Explorer, Access o las APIs del SQL Server 2000) pueden usarse para crear y administrar bases de datos. Ahora que sabe un poco ms acerca de las distinta ediciones del SQL Server 2000, ahora enfoqumonos ms a la versin SQL Server 2000 Desktop Engine, que ser la que usaremos a lo largo de este libro.

14

Porqu usar el Desktop Engine en vez de Access?


Una de las principales ventajas del Desktop Engine es que actualmente es una verdadera versin del SQL Server 2000, que incluye el mismo motor de base de datos relacional y las caractersticas de replicacin que el Personal Edition, a excepcin del servicio de bsqueda Full-Text, y las herramientas de administracin grfica. Tenga en mente, que las bases de datos en esta versin no pueden ser mayores a 2 GigaBytes, y que la base de datos soporta como mximo 5 procesos a la vez, lo cual significa, que no se pueden realizar ms de 5 tareas de administracin de base de datos a la vez. Por ejemplo, esto se da cuando, 5 usuarios diferentes se conectan al servidor o cuando una aplicacin con una simple conexin ejecuta 5 procesos distintos en un determinado momento. Ahora lo que se puede considerar como beneficio de esta versin es que contiene un formato totalmente redistribuible en forma libre. No se necesita pagar ninguna licencia por el uso de este producto. Otra ventaja adicional de esta versin, es que ofrece a los desarrolladores la posibilidad de crear programas de demostracin de sus productos. Supngase que tiene un programa extenso y complejo basado en SQL Server, y quiere dar una perspectiva a su cliente del programa en un CD de demostracin. Anteriormente los programadores tenan que hacer una versin demo usando la base de datos de Access en donde se poda distribuir libremente el archivo de base de datos siempre y cuando se tenga instalado las libreras de ejecucin de Access en un equipo. El Desktop Engine soluciona esto, permitiendo la distribucin de CDs de demostracin sin la necesidad de reescribir el cdigo del programa final. Se puede entonces ahora ver que el Desktop Engine ofrece una alternativa seria cuando se trata de desarrollar una aplicacin con mnimos requisitos de base de datos.

15

Adicionalmente por el mismo hecho de que es una verdadera versin del SQL Server (facilitando la actualizacin o migracin a un servidor de produccin para el futuro), tiene la ventaja de tener la arquitectura Cliente/Servidor en vez de estar basado en un archivo tipo Access. Debemos estar concientes de que Access almacena toda su informacin en un nico archivo (el archivo .mdb). De otra parte, el Desktop Engine de SQL Server soporta la verdadera arquitectura Cliente/Servidor, tanto as que al instalarlo hace que el equipo se comporte como un servidor de base de datos. Esto no quiere decir que el Desktop Engine se debe instalar en un equipo aparte, sino que puede ser instalado en el propio equipo de desarrollo o del cliente. Lo que quiere decir esto realmente es, que con las base de datos basadas en cliente/servidor, el servidor es quien se encarga de manipular los datos por nosotros. Con Access, por otro lado, todos los procesos para la captura de los datos se realizan del lado del cliente y pueden consumir valiosos recursos del equipo del cliente.

Obteniendo e instalando el Desktop Engine


En esta seccin, buscaremos donde se puede obtener una copia del Desktop Engine y luego lo instalaremos paso a paso. Note que si usted ya tiene instalado otra versin del SQL Server 2000, puede usar esa misma instalacin en vez del Desktop Engine. El cdigo usado como ejemplo en este libro trabajar con cualquier versin del SQL Server 2000, sin embargo para efectos de demostracin nos basaremos en el Desktop Engine ya que es la nica versin gratuita del SQL Server 2000.

16

Donde obtener una copia del Desktop Engine?


Esta versin est disponible a travs de muchos recursos, incluyendo el Visual Studio .NET, el SQL Server 2000 y el Office 2000 o tambin en Office XP, adems lo podemos descargar desde el mismo sitio Web de Microsoft (http://www.microsoft.com/). Verifique los requisitos de instalacin descritos a continuacin para asegurarse de que su sistema puede soportarlo.

Requisitos de Instalacin
El Desktop Engine puede ser instalado en cualquiera de las versiones de la familia Windows: Windows 98, Windows NT 4.0, Windows Millenium, Windows 2000 o Windows XP y se necesita como mnimo 64 Mb. de RAM.

17

Instalacin del Desktop Engine


Paso 1 Inserte el segundo disco de instalacin o DVD y desde el explorador de Windows dirjase a la carpeta \program files\Microsoft .NET\FrameworkSDK\Samples\Setup. Ah encontrar el archivo instMSDE.exe ; la ubicacin precisa de este archivo puede variar a otro CD o directorio dependiendo de las prximas versiones del Visual Studio .NET. Incluso en algunas versiones del Visual Studio .NET, se usa el archivo SQL2000.exe, en vez del instMSDE.exe . Paso 2 Ejecutar el programa de instalacin. Haga doble clic en el archivo instMSDE.exe para iniciar el programa de instalacin. Probablemente se le pregunte que algunos archivos del sistema tienen que ser actualizados antes de que la instalacin contine. Esto puede requerir que se reinicie el sistema y comience de nuevo la instalacin. Despus de ejecutar la instalacin, se iniciar la copia de archivos a su sistema sin la interactividad del usuario. El Desktop Engine se instalar con las configuraciones por defecto del SQL Server, tal como se encuentran especificadas en el archivo setup.ini. La instancia del SQL Server se llamar MiPC\NetSDK, en donde MiPC es el nombre de su equipo. Si desea modificar estos valores por defecto (o especificar algunas configuraciones adicionales), necesitara copiar todo el directorio de instalacin a su disco duro o a la red de tal manera que se pueda modificar el archivo setup.ini. Paso 3 satisfactoria. Confirmacin de que la instalacin fue

El proceso de instalacin deber agregar un nuevo icono al men inicio de Windows. Para verificar que la instalacin a sido satisfactoria, dirjase al men Inicio, Programas, y a la carpeta Inicio. Ah encontrar el programa llamado Service Manager. El hecho de que est en la carpeta inicio, garantiza

18

que cada vez que inicie su equipo, corra este servicio automticamente. En vez de reiniciar su equipo para ejecutarlo, ejecute el Service Manager para ejecutarlo manualmente. Cuando se hace esto, notar que un nuevo icono representando un servidor aparece en la barra de tareas de Windows, justamente cerca al reloj del sistema. Luego examinaremos el funcionamiento de estas opciones ms adelante en este mismo capitulo.

Entendiendo que es lo que se instal


Ahora que se complet la instalacin, veamos que se instal exactamente. En total, se han instalado 3 servicios con el Desktop Engine: SQL Server, SQL Server Agent, y el Distributed Transaction Coordinator. El SQL Service Manager, que se acaba de ejecutar manualmente, es un utilitario que permite administrar cada uno de estos servicios. Veamos ahora la descripcin detallada de cada uno de estos servicios.

El servicio SQL Server


Este servicio es el corazn del Desktop Engine . En

realidad, es el motor usado por todas las otras versiones del SQL Server. Consiste en el motor de almacenamiento y el procesador de consultas. El motor de almacenamiento es el responsable de la lectura y escritura de la informacin en la base de datos. El procesador de consultas es responsable de recibir y ejecutar las sentencias SQL. Hay adems algunos otros componentes adicionales para el almacenamiento de los datos y el procesador de consultas, pero no son necesarios para nuestros propsitos por ahora, as que los pasaremos por alto.

El SQL Server Agent


El Agente del SQL Server . Con este servicio se pueden

programar ciertas alertas y actividades para la base de

19

datos. Si, por ejemplo, desea hacer un back up (copia de seguridad) de su base de datos cada noche, el agente SQL Server le permite programar esta tarea para que automticamente se ejecute y reporte si se encuentra algn problema. Por lo tanto este servicio no siempre necesita estar ejecutndose, sin embargo puede ser una herramienta muy til.

El Distributed Transaction Coordinator


El coordinador de Transacciones Distribuidas de Microsoft (DTC). Este servicio permite que las

transacciones se extiendan a lo largo de otros equipos existentes en la red. Mas adelante veremos un ejemplo de uso de este servicio.

Administrando los servicios con el SQL Service Manager


Como ya se mencion, este utilitario permite administrar los tres servicios mencionados previamente. Cuando ste es iniciado, ya sea automticamente al iniciar el sistema o manualmente despus de la instalacin, se visualiza un icono en la barra de tareas de Windows, tpicamente localizada en la esquina inferior derecha de la pantalla. como se muestra aqu:

En esta imagen, este utilitario aparece a la izquierda del reloj de Windows, y representa la imagen de un servidor con una flecha insertada de color verde, que se parece al smbolo reproducir (play) de un VCR (aparato de reproductor de video). Algunas veces, el c i ono muestra un cuadrado de color rojo, como el smbolo detener, haciendo notar la suspensin de uno de los tres servicios como se describe posteriormente en esta misma seccin. Si da doble clic sobre este icono, la pantalla del SQL Service Manager se muestra as:

20

Esta ventana muestra la configuracin de los servicios y del servidor, juntamente con el estado del servicio seleccionado. Las listas desplegables del Servidor y de los Servicios permiten seleccionar los elementos disponibles. Por ejemplo la lista del Servidor muestra las instancias que para esta computadora en particular estn disponibles. La lista de los servicios permite seleccionar uno de los tres servicios descritos anteriormente. Adems hay botones para Iniciar/Continuar, Pausar y Detener, los cuales estn habilitados o deshabilitados de acuerdo al estado actual. En la figura anterior, el botn Pause y Stop estn habilitados. Si se desea suspender temporalmente todas las actividades de la base de datos, simplemente hacemos clic sobre el botn Pausa. Si se desea parar completamente todas las actividades de la base de datos, se hara clic sobre el botn Stop. Para reiniciar el servicio posteriormente, tenemos el botn Start/Continue. El Servicio SQL Server mostrado en la figura, est corriendo bajo el servidor JCHMPC (el suyo de hecho estar corriendo bajo un nombre diferente). Note la barra de estado en la parte inferior que muestra el mensaje Running - \\JCHMPC MSSQLServer, y la flecha verde dentro de un crculo que sera reemplazada por un cuadrado rojo si el servicio fuera

21

suspendido; esta misma representacin se ver en el icono de la barra de tareas de Windows. Adicionalmente, note como el indicador Auto-start service when OS starts se encuentra marcado, lo cual significa que el Servicio SQL Server se iniciar cada vez que se reinicia el sistema operativo. Se recomienda que esta casilla se encuentre marcada, de tal manera que no necesite estar levantando el servicio manualmente cada vez que quiera hacer un mantenimiento de su base de datos. Como ha podido ver en estos ejemplos, el SQL Service Manager es una buena herramienta para administrar los servicios disponibles que vienen con el Desktop Engine. Ahora ya nos encontramos aptos para pasar al siguiente tema de cmo trabajar con el Desktop Engine en Access.

Usando Access para trabajar con el SQL Server - Desktop Engine


Debido a que el Desktop Engine no viene con ninguna herramienta de administracin (como el caso de las otras versiones del SQL Server 2000), se puede usar Microsoft Access, el Server Explorer del Visual Studio .NET, o alguna otra herramienta de terceros diseada para este propsito. La buena noticia es que Microsoft Access 2000 o XP y el Server Explorer del Visual Studio .NET tienen una cercana integracin con las Bases de Datos de SQL Server. Estas herramientas permiten crear y administrar nuevas bases de datos de SQL Server. Tambin permiten ver Vistas (un tipo de consulta) as como otros objetos asociados a la base de datos. En el resto del capitulo usar Access XP para administrar una base de datos. Luego ms adelante en el libro usaremos el Server Explorer del Visual Studio .NET. Access provee asistentes de migracin que convierten una base de datos existente de Access a cualquier versin de SQL Server. Las versiones anteriores de Access no permitan modificar la estructura de una tabla, crear una nueva base de datos, o administrar otros objetos como las

22

vistas. Todo lo que se poda hacer era conectarse a una base de datos existente para examinar, crear o eliminar una tabla o actualizar los datos que est tena. La nueva integracin con Access 2000 o XP, y de seguro versiones futuras, ofrecen una mejora sobre estos casos anteriores.

23

Creacin de una nueva base de datos en el SQL Server -Desktop Engine desde Access
En esta parte, vamos a crear una base de datos tpica para almacenar informacin en un sistema de ventas que tiene las tablas: Productos, Clientes, Pedidos y Detalles. Para crear una nueva base de datos de SQL Server desde Access, primero se necesita crear un nuevo proyecto vaco. Luego se crea cada tabla en la vista diseo y luego se abren estas para agregarles algunos registros de prueba.

Prctica Creacin de una nueva base de datos en SQL Server desde Access 1. 2. 3. 4. Abrimos Microsoft Access. Seleccionamos el Men Archivo | Nuevo. Elija proyecto usando nueva base de datos. Nombre el proyecto como testDB y gurdelo en la carpeta que crea conveniente. Una vez creado el nuevo proyecto, se muestra el Asistente para Base de Datos de SQL Server, como se muestra a continuacin:

24

5.

Al asistente empieza preguntando por el nombre del servidor que va a usar, el Identificador de Usuario y la contrasea. Rellene los datos apropiadamente: el nombre de su servidor, el identificador de usuario y la contrasea (el usuario debe ser sa y la contrasea en blanco a menos que los haya cambiado previamente). Finalmente aparece el nombre de la Base de Datos como testDBSQL que podra cambiarlo si es lo que desea, sin embargo para efectos de demostracin nos quedaremos con este nombre sugerido. Hacemos clic en el botn siguiente. La siguiente pantalla indicar que el asistente tiene toda la informacin necesaria para crear la base de datos. En esa pantalla hacemos clic en el botn Finalizar. Se ver un cuadro solo por un momento que indica el progreso de la operacin. Una vez completado este proceso, el asistente ha terminado, dejndonos frente a la base de datos vaca como se muestra a continuacin:

6.

7.

25

8.

El siguiente paso ser crear una nueva tabla, y esto lo hacemos dando doble-clic en la lnea que dice Crear una tabla nueva en la vista diseo. Aparecer en la pantalla el diseador de tablas vaco. Primero, creamos la tabla producto con las siguiente estructura:

9.

26

Tabla: Productos Campo Ejemplo de datos Tipo de datos Tamao estimado de los datos Nmeros positivos sin decimales 25 caracteres 0.00 hasta 10,000.00 0 hasta 9,999 25 caracteres

IDProducto (PK)

12345

Numrico

Descripcin

Harina de pescado 23.25

Texto

PrecioUnitario

Monetario

Stock

50

Numrico

UnidaddeMedida

40 100 gr.

Texto

Llene el diseador de tablas como se muestra en la siguiente figura:

27

Una vez terminado con el diseo mostrado, preste atencin a los nombres de los campos y los tipos de datos que acaba de asignarle a cada uno. Ntese que el campo IDProducto debera ser declarado como clave primaria de esta tabla. 10. Ahora no solo queremos que el identificador del producto sea nuestra clave primaria, sino que adems tambin se quiere que se auto genere automticamente por el SQL Server, empezando con el valor 1 e incrementado d e uno a uno cada vez que se ingrese un nuevo registro a la base de datos. Por lo tanto definiremos a este campo como Identity Column, epezando con el valor uno ( Identity Seed) y que ser incrementado de uno en uno (Identity Increment), como se muestra a continuacin:

28

11. Ahora ya estamos listos para declarar al campo IDProducto como clave primaria. Seleccione este campo y seleccione el men Edit | Primary Key:

Note como sale una imagen de una llave al lado izquierdo de la columna Improducto. Esta es un indicador visual que representa la clave primaria de una tabla.

29

12. Ahora ya estamos listos para guardar la tabla. Puede darle un clic al botn guardar de la barra de herramientas estndar, y asgnele el nombre Productos. 13. Despus de guardar la tabla, cierre la vi sta diseo. Ahora regresaremos al explorador de base de datos en donde se ve a la tabla productos recin creada. 14. Ahora podemos repetir el proceso para crear la tabla Clientes . Hacemos doble-clic donde dice Crear una tabla nueva en la Vista Diseo. 15. En la siguiente tabla se muestra el diseo lgico de la tabla Clientes : Tabla: Clientes Campo Ejemplo de datos Tipo de datos Tamao estimado de los datos Nmeros positivos decimales 15 caracteres 15 caracteres 8 caracteres 30 caracteres 20 caracteres 12 caracteres 50 caracteres

IDCliente (PK)

123456

Numrico

sin

Nombres Apellidos DNI Domicilio Ciudad Telfono Email

Ral Rodrigo Alonso Ruiz 20036989 Jr. Cuzco 222 Huancayo 064-232425 ralonso31@hotm ail.com

Texto Texto Texto Texto Texto Texto Texto

30

Note que la mayora de campos son declarados como tipo varchar. Esto se debe a que es el mejor tipo de datos para valores de texto de longitud variable. Sin embargo el DNI es un campo de tipo char, porque siempre contiene un nmero fijo de caracteres y en estos casos el tipo char es la mejor opcin. 16. Repetimos los procesos descritos en los pasos 10 y 11 para establecer el campo IDCliente como Identity Field, con los mismos valores por defecto en el Identity Seed y el Identity Increment, y tambin establecerla como clave primaria. 17. Guardamos el archivo con el botn guardar de la barra de herramientas estndar con el nombre Clientes antes de cerrarla y retornar a la vista que nos mostrar las tablas que hemos creado hasta ahora. 18. Ahora, repetimos el proceso para crear la tabla Pedidos. Nuevamente hacemos doble-clic donde dice Crear una tabla nueva en la Vista Diseo. 19. En la siguiente tabla se muestra el diseo lgico de la tabla Pedidos: Tabla: Pedidos Campo Ejemplo de datos Tipo de datos Tamao estimado de los datos Nmeros positivos sin decimales Una fecha vlida Nmeros positivos sin decimales

IDPedido (PK)

1000

Numrico

Fecha Pedido IDCliente (FK)

de

30/08/2003

Fecha

123456

Numrico

31

Fecha de Entrega

31/08/2003

Fecha

Una fecha vlida

Note que los campos Fech_ped y Fech_ent son de tipo DataTime; el tipo de datos de SQL Server usado para almacenar fechas. Tanto el campo IDPedido como IDCliente son de tipo int y no soportan valores nulos. De esta forma, cuando se agrega un nuevo registro a esta tabla se deben llenar de datos por lo menos a estos dos campos. 20. Nuevamente, repetimos los pasos 10 y 11 para establecer al campo IDPedido como Indentity field y tambin como Clave primaria. 21. Guardamos esta tabla como Pedidos, pero esta vez no cerramos el diseador porque todava nos falta un detalle. 22. Si vemos el diseo lgico de la tabla Pedidos nos daremos cuenta de que el campo IDCliente es una clave fornea (FK) relacionada con la clave primaria de la tabla Clientes. Para esto nos vamos al men Ver | Relaciones, y aparece el siguiente cuadro de dilogo:

32

23. Hacemos clic sobre el botn New y notaremos que automticamente asume que queremos crear una relacin con la tabla Clientes, tal como se muestra a continuacin:

33

La opcin Check existing data on creation significa que la relacin ser verificada cuando se agrege un registro nuevo, y si algn registro no tiene la apropiada relacin, se mostrar un error. Eso significa que no podramos agregar un pedido sin un cliente existente en la tabla Clientes . Estableciendo la opcin Enforce relationship for replication, la relacin se mantendr si los datos son replicados a otro servidor. Si marcamos la opcin Enforce relationship for INSERTs and UPDATEs, significa que al insertar o actualizar un registro se verifica que este exista adems en la tabla clientes, de lo contrario, no se podr realizar los cambios.

34

24. Este cuadro de dilogo automticamente ha rellenado la lista Primary key table y Foreing key table, como Clientes y Pedidos respectivamente, que es lo que precisamente necesitamos. En realidad no se trata de que este cuadro de dilogo sea un tanto inteligente sino que selecciona alfabticamente la primera tabla, que de hecho no siempre ser lo que queremos hacer. Ahora lo que necesitamos es indicar los campos comunes entre ambas tablas para especificar la relacin como se muestra a continuacin:

Esto crea la relacin que queremos entre dos tablas. Eso es todo lo que se tiene que hacer para crear una relacin con una clave Fornea.

35

25. Mientras esta ventana an se encuentra echemos un vistazo a la ficha Indexes/Keys como ha creado automticamente un ndice Clustered al momento de establecer una clave para la tabla.

abierta, para ver de tipo primaria

26. Ahora cerramos la ventana de propiedades y la ventana del diseador de tablas para r etornar al proyecto y ver las tablas creadas hasta el momento. Probablemente se nos pregunte si deseamos guardar los cambios. Por su puesto que hacemos clic en Si.

36

27. Ahora, repetimos el proceso por ltima vez, para crear la tabla Detalles . As que hacemos doble-clic donde dice Crear una tabla nueva en la Vista Diseo. 28. En la siguiente tabla se muestra el diseo lgico de la tabla Detalles: Tabla: Detalles Campo Ejemplo de datos Tipo de datos Tamao estimado de los datos Nmeros positivos sin decimales Nmeros positivos sin decimales

IDPedido (PK)

1000

Numrico

IDProducto (PK)

12345

Numrico

Precio Cantidad

23.25 2

Monetario Numrico Un mximo de 99

Creamos la estructura de la tabla Note que los campos IDPedido e IDProducto son de tipo int y el campo Cantidad es e tipo smallint. Este tipo de datos puedo contener valores desde -32,768 hasta 32,767. As que para almacenar la cantidad de tems de un determinado producto que lleva un cliente es ms que suficiente. Adems tambin los campos IDPedido e IDProducto no soportan valores nulos. 29. En este caso, vamos a especificar que la combinacin de los campos IDPedido e IDProducto formarn la clave primaria. Esto quiere decir que la combinacin de estos dos datos harn un nico identificador de registro. Sin

37

embargo estos no sern marcados como Indentity Column, ya que esos registros no son inicialmente creados en esta tabla, sino en las tablas a las cuales hacen referencia. El IDPedido es generado en la tabla Pedidos mientras que el IDProducto es generado en la tabla Productos. As que todo los que necesitamos por ahora es seleccionar estos dos campos a la vez y declararlos como claves primarias. 30. Despus de esto, el grfico de una llave aparecer al lado de estos dos campos. 31. Ahora guardamos la tabla con el nombre Detalles, pero nuevamente no cierre esta ventana an. 32. Los campos IDPedido e IDProducto son las claves primarias de esta tabla, pero tambin son claves forneas de las tablas Pedidos y Productos respectivamente. Entonces nos vamos al men Ver | Relaciones y hacemos clic sobre el botn Nuevo . 33. Nuevamente, por defecto aparece la tabla Clientes, la cual esta vez no es la que queremos. As que, en la lista Primary key table, seleccionamos Pedidos de manera que podamos crear nuestra primera clave fornea relacionada al campo IDPedido de la tabla Pedidos. 34. Note que cuando cambiamos la clave primaria automticamente la lista Foreing key table cambia a Detalles como se ve a continuacin:

38

35. Ahora seleccionamos IDPedido de la tabla Pedidos como clave primaria y luego IDPedido de la tabla Detalles como clave fornea, como se ve a continuacin:

39

36. Esto crea la relacin con la tabla Pedidos, ahora debemos crear la relacin con la tabla Productos. Para eso, hacemos clic en el botn Nuevo. 37. Ahora cambiamos a la tabla Productos como tabla primaria y la tabla Detalles como fornea con el campo IDProducto en ambos casos. De esta manera tendramos la relacin con la tabla Productos tambin. 38. Para ver la lista de las relaciones existentes en la tabla Detalles, desplegamos la lista Selected relationship:

40

39. Note que ambas relaciones que acabamos de crear aparecen en esta lista. Cerramos esta ventana y el diseador de la tabla Detalles para retornar al proyecto principal, si se nos pregunta que si queremos guardar los cambios contestamos, por supuesto Si. 40. Hacemos doble-clic en la tabla Productos para agregar algunos datos de ejemplo. Recordemos que el campo IDProducto es autogenerado por SQL Server, as que no tenemos que llenar nada ah. Tratemos de agregar registros sin ingresar valores a los campos requeridos (que no soportan nulos), solo para ver que sucede. Luego agregamos unos cuantos registros y cerramos la ventana examinar. 41. Luego, abrimos la tabla Clientes y agregamos algunos registros. Nuevamente, recordemos que el campo IDCliente es autogenerado.

41

42. Abrimos la tabla Pedidos y agregamos algunos registros aqu tambin. Note lo que sucede cuando trate de agregar un registro cuyo IDCliente no exista en la tabla Clientes (la relacin fuerza a que haya una integridad referencial en ambas tablas). Luego llene algunos registros con datos vlidos. 43. Por ltimo, abrimos la tabla Detalles y le agregamos algunos registros de prueba. Y de hecho tenemos que agregar el IDPedido de un pedido existente y un IDProducto de un producto existente tambin. Adems notar que un mismo pedido puede agregarse varias veces pero eso s con diferentes productos, de la misma forma un mismo producto puede aparecer en diferentes pedidos pero no en un mismo pedido. Bueno pues, Felicitaciones! Acaba de crear satisfactoriamente una base de datos con cuatro tablas en el SQL Server Desktop Engine usando un proyecto de Microsoft Access. Ahora que hemos aprendido los principios bsicos de la implementacin de una base de datos en el SQL Server, podemos empezar a trabajar con una base de datos ms compleja que usaremos para la mayora de ejemplos de este libro. Usaremos la base de datos Northwind que viene como ejemplo en Access. sta es bastante similar a la base de datos que acabamos de crear. Sin embargo esta base de datos es ms compleja ya que contiene tablas adicionales y est diseada para cubrir las necesidades de una empresa ficticia llamada Northwind. En la siguiente seccin, veremos como usar el Upsizing Wizard (asistente de migracin) para convertir la base de datos Northwind de Access a SQL Server. Durante este proceso, el asistente automticamente crea un nuevo proyecto de Access por nosotros para la administracin de esta base de datos. Una vez convertida la base de datos en SQL Server, seremos capaces de usarla para los ejemplos de este libro.

42

Convirtiendo una Base de Datos de Access existente al SQL Server Desktop Engine
En esta seccin, vamos a convertir una base de datos existente en Access, la base de datos Northwind que viene como ejemplo al instalar e l producto. Una vez que se haya terminado con la conversin, analizaremos el reporte producido para asegurarnos de que no hubo errores. Luego veremos el proyecto resultante que nos permite administrar la nueva base de datos que acabamos de crear en SQL Server. Prctica Migracin de la base de datos Northwind de Access al SQL Server 1. 2. Abrimos Microsoft Access. Seleccionamos el men Archivo | Abrir o el botn Abrir de la barra de herramientas estndar. Buscamos el archivo norhtwind.mdb. El lugar comn en donde lo puede encontrar es c:\archivos de programa\Microsoft Office\Samples, dependiendo de la versin o idioma del programa y del sistema operativo. En todo caso otra forma es buscarlo a travs de la herramienta buscar de Windows. Cerramos la pantalla de presentacin de la aplicacin Northwind de manera que pasemos a la ventana principal del proyecto. Desde el men Herramientas, seleccionamos Utilidades de Base de Datos | Asistente de Migracin Se mostrar el asistente Seleccionamos la opcin Create new database (que por defecto aparecer marcada), y hacemos clic sobre el botn Siguiente de manera que podamos crear una nueva base de datos.

3.

4. 5. 6.

43

7.

Rellenamos la informacin sobre el SQL Server como se muestra en la siguiente figura. En el caso del nombre de la nueva base de datos, la vamos a llamar NorthwindSQL (ya que para quienes tienen otras versiones de SQL Server que no sean el Desktop Engine, ya se encuentra la base de datos Northwind, y probablemente sea el caso suyo). Una vez que se rellenan todos los datos necesarios, hacemos clic sobre el botn siguiente.

8.

En la siguiente pantalla se nos pide especificar que tablas migraremos al SQL Server. En nuestro caso agregaremos todas y pasamos a la siguiente pantalla.

44

9.

En la siguiente pantalla se puede especificar los atributos de la base de datos (con respecto a los objetos) queremos llevar hacia la nueva base de datos en SQL Server. En este caso queremos llevar tanto la estructura como los datos, por lo tanto marcamos las opciones como a continuacin se muestra:

45

10. En la siguiente pantalla se especifica donde crearemos el proyecto de Access y como se va a llamar. Esta pantalla nos da la oportunidad de enlazar una aplicacin existente o crear una nueva aplicacin cliente/servidor. Sin embargo dejaremos las opciones por defecto 11. Esta es la ltima pantalla del asistente en donde hacemos clic al botn Finalizar 12. Luego, se inicia la conversin de la base de datos. Veremos una barra de progreso indicando algunos detalles del proceso 13. Si ocurre algn error este ser mostrado por un mensaje detallando la causa del mismo. Sin embargo contina con la siguiente tabla u objeto de base de datos 14. Inmediatamente despus de terminar con la migracin se muestra un reporte resumiendo los detalles del proceso. Este reporte consta de aproximadamente 19 pginas y podemos revisarla detalladamente para revisar su contenido.

46

15. Despus de mostrar todos los detalles de la conversin de cada tabla, aparece un resumen que describe las consultas que han sido convertidas. Note como algunas vistas de Access han sido convertidas como vistas en SQL Server, y otras las ha convertido como procedimientos almacenados. Ms adelante veremos en detalle el uso de las vistas y procedimientos almacenados. 16. Si gusta puede imprimir el archivo log (archivo de registro) o el reporte creado automticamente.

Felicitaciones nuevamente! Acaba de migrar una base de datos de Access a SQL Server para crear un proyecto Cliente/Servidor. Puede ahora revisar el proyecto que actualmente est abierto en Access (northwindsql.adp). Notar que no es tan diferente a un proyecto individual de Access. La principal diferencia est en detrs de la arquitectura. Las tablas se visualizan igual que antes pero ahora los datos estn almacenados fsicamente el SQL Server.

47

CAPITULO II TRABAJANDO CON LA BASE DE DATOS

48

Acceso a Datos con ADO.NET


En esta seccin veremos ADO.NET y sus clases ms importantes

Qu es ADO.NET?
ADO.NET es una tecnologa de acceso a datos que se basa en los objetos ADO (Objetos de Datos ActiveX) anteriores. Es

una manera nueva de acceder a los datos construida sobre ADO, es por eso que tambin ADO.NET puede coexistir con ADO. ADO.NET utiliza un modelo de acceso pensado para entornos desconectados. Esto quiere decir que la aplicacin se conecta al origen de datos, hace lo que tiene que hacer, por ejemplo seleccionar registros, los carga en memoria y se desconecta del origen de datos. ADO.NET es un conjunto de clases que se utiliza para acceder y manipular orgenes de datos como por ejemplo, una base de datos en SQL Server o una planilla Excel. ADO.NET utiliza XML como el formato para transmitir datos desde y hacia su base de datos y su aplicacin Web.

El Espacio de Nombres
Hay 3 espacios de nombres que se pueden usar en un formulario Web para acceder a ADO.NET: ??System.Data. ??System.Data.SqlClient. ??System.Data.OleDb. Para importar el espacio de nombres en VB.NET se usa la sentencia:
Imports System.Data Imports System.Data.SqlClient Imports System.Data.OleDb datos 'Siempre lo vamos a utilizar 'Para acceder a SQL Server 'Para acceder a cualquier otro origen de

49

El modelo de Objetos ADO.NET


El modelo de objetos ADO.NET provee una estructura de acceso a distintos orgenes de datos. Tiene 2 componentes principales: El Dataset y el proveedor de Datos .NET ??El Dataset: Esta formado por uno o ms objetos de tipo DataTables. Fue diseado para acceder a datos independientemente del origen. Por ejemplo, un DataSet puede obtener datos de SQL Server, Oracle o de un archivo XML. Puede utilizar un objeto llamado DataView para ver los datos de distintas maneras. ??El proveedor de Datos .NET: Provee del enlace entre el Origen de Datos y el DataSet.

El cuadro muestra un ejemplo de Objetos provistos por distintos proveedores de datos .NET

50

Objetos de Proveedores de Datos .NET Connection

Propsito

Objeto SQL Server 7.0 o 2000

Objeto para un origen OLEDB OleDBCo nnection

Provee conectividad a un Origen de Datos Provee acceso a comandos de Base de Datos como Select, Delete, Insert y Update Provee acceso a datos de solo lectura Utiliza el objeto Connection para enlazar un objeto DataSet con un Proveedor de Datos.Tambin permite actualizar los Datos en el origen a partir de las modificaciones hechas en el DataSet

SqlConnectio n

Command

SqlCommand

OleDBCo mmand

DataReader

SqlDataRead er

OleDBDat aReader

DataAdapter

SqlDataAdap ter

OleDBDat aAdapter

51

Accediendo a Datos con ADO.NET


Hay tpicamente 3 pasos para acceder a los datos: ??Acceder al Origen de Datos y mostrar los datos en el formulario Web. ??Manipular los Datos. ??Retornar los datos para actualizar la base de datos. Observe en el grfico el escenario ms comn que se presenta cuando accede a los datos:

52

Los datos siempre viajan en formato XML, ASP.NET y ADO.NET transforman en forma automtica el XML en un DataSet.

El objeto DataSet
Un DataSet guarda informacin en un entorno desconectado. Despus de que se establece una conexin con una Base de Datos entonces puede acceder a sus datos. El DataSet es la principal forma de guardar datos cuando usted utiliza ADO.NET El DataSet p ermite guardar datos que se obtuvieron de un origen de datos. Los datos en un DataSet pueden ser manipulados sin necesidad que el formulario Web mantenga la conexin con el origen de datos. La conexin se reestablece recin cuando se necesita actualizar los cambios. Los mtodos y objetos que se usan en un DataSet son similares los que se usa en una base de datos relacional. El DataSet est formado por cinco tipos diferentes de objetos:

53

Tables , Rows , Columns , Constraints Collections , tal como en una base de datos.

y Relations

El DataSet guarda la informacin en uno o ms objetos de tipo DataTables . Cada DataTable puede ser poblada con datos de un nico origen. Se puede tambin establecer relaciones entre 2 objetos DataTables usando un objeto de tipo DataRela tion .

Veamos como crear un nuevo DataSet:


Dim ds As New DataSet

O tambin puede ser:


Dim ds As New DataSet("DataSetVentas")

En el primer caso nuestro DataSet tendra un nombre por defecto asignado por el sistema. En el segundo caso estamos estableciendo un nombre especfico. Los DataSets son un almacn de informacin al cual podemos acceder en cualquier momento.

54

El objeto DataTable
Un DataSet contiene una coleccin de tablas a las cuales hace referencia a travs de su propiedad Tables. Cada tabla individual residente en memoria, es llamada DataTable , y podran haber cero o ms tabla en la coleccin. Los DataTable contienen filas de datos, y cada fila est formada por columnas. Podemos crear continuacin: un DataTable como se muestra a

Dim tabla As New DataTable

O especificando el nombre deseado:


Dim tabla As New DataTable(TablaClientes)

Ahora podramos agregar una tabla a un DataSet con el mtodo Add de la propiedad Tables del DataSet:
Dim ds As New DataSet("DatasetVentas") Dim tablaCliente As New DataTable("TablaClientes") ds.Tables.Add(tablaCliente)

Para hacer referencia a una tabla en particular de un DataSet podramos hacerlo mediante su nombre o su ndice:
ds.Tables(tablaCliente) ds.Tables(0)

Ahora podramos agregar una tabla a un DataSet con el mtodo Add de la propiedad Tables del DataSet:

El objeto Conexin
Abre una conexin sobre un origen de datos. Podemos usar como se explic anteriormente en este mismo captulo el objeto OleDbConnection o el SqlConnection (dependiendo a que origen de datos nos queremos conectar). Para el proveedor OleDB indicamos los siguientes argumentos en la cadena de conexin: Provider, Data Source (o Server), User ID y Password. Para el proveedor SQL usamos

55

los mismos argumentos a excepcin del Provider, ya que en este caso siempre ser SQL. Veamos el siguiente ejemplo que crea una conexin SQL:
Dim conexion As New _ SqlConnection("server=localhost; user id=sa; password=; database=NorthwindSQL") conexion.Open()

El objeto DataAdapter
El DataAdapter es el nexo entre un origen de datos y el DataSet. Si desde la aplicacin queremos recuperar o actualizar registros, se usan las propiedades del DataAdapter que hacen referencia a los objetos Command que se comunican directamente con el origen de datos para manipular los datos de acuerdo al pedido del usuario. Cuando un DataAdapter se conecta a un origen de datos se puede ejecutar acciones. EL siguiente cuadro resume las 4 acciones: Propiedad SelectCommand Funcin Obtiene registros origen de Datos Inserta registro origen de datos de un

InsertCommand

en

un

UpdateCommand

Modifica registros en un origen de datos Borra registros origen de datos en un

DeleteCommand

56

El modelo de objetos del DataAdapter


En la imagen siguiente podemos ver como el DataAdapter hace de nexo entre una Base de Datos y el DataSet . El DataReader permite ver de distintas maneras los datos seleccionados de la Base de Datos. Tambin se observa como el DataAdapter permite hacer las operaciones ms comunes en una Base de Datos como por ejemplo, Seleccionar, Modificar, Borrar e Insertar elementos.

Los mtodos ms usuales del DataAdapter son Fil y Update. El mtodo Fill llena un DataSet con la informacin especificada, veamos el siguiente ejemplo:
Dim ds As New DataSet Dim da As New SqlDataAdapter da.Fill(ds)

El mtodo Update permite actualizar los datos modificados en el DataSet:


da.Update(ds)

57

El objeto Command
El objeto Command es usado para configurar los comandos SELECT, INSERT, UPDATE y DELETE o procedimientos almacenados de un DataAdapter. Veremos un ejemplo junto con el objeto DataReader a continuacin.

El objeto DataReader
Cuando se debe recuperar una gran cantidad de registros de un origen de datos el objeto DataTable puede usar demasiada memoria y recursos. El objeto DataReader permite usar menos recursos y acceder ms rpidamente a los datos. El costo de esto es que puede ser recorrido nicamente hacia adelante y sus datos no pueden ser modificados Adems la conexin al origen de datos debe hacerse en forma explcita. Veamos un ejemplo:
'Se crea la conexin Dim conexion As New _ SqlConnection("server=localhost; user id=sa; password=; database=NorthwindSQL") conexion.Open() 'se crea un objeto de tipo command Dim cmdDoctores As New SqlCommand("select * from Customers", conexion) 'se declara crea un objeto de tipo dataReader Dim dr As SqlDataReader 'el resultado de la ejecucin del objeto command es un DataReader dr = cmdDoctores.ExecuteReader() 'Ahora leemos los datos del DataReader 'El Bucle va desde el primer registro hasta el ltimo Do While dr.Read() Imprimimos en la pgina web Response.Write( dr("CustomerID") + " " + dr("CompanyName") ) Loop dr.Close()'Cerramos el DataReader conexion.Close() 'Cerramos la conexin

58

DataSets vs. DataReaders


DataSet Acceso a datos Lectura/Escritura de DataReader Lectura nicamente

Puede incluir varias tablas y distintos orgenes de datos

Basado en una sola sentencia SQL de una sola base de datos Modelo conectado Se puede asociar a un solo control nicamente hacia delante

Modelo desconectado Se puede asociar a muchos controles Se puede recorrer los datos hacia delante y hacia atrs Acceso ms lento Sportado por la herramientas de Visual Studio .NET

Acceso ms rpido Codificado manualmente

El concepto de coleccin
Recordemos que un arreglo (array) es un conjunto de elementos del mismo tipo. Una coleccin es un conjunto de elementos de cualquier tipo. Sus elementos son accedidos mediante un ndice entero. En ADO.NET el primer elemento de una coleccin tiene ndice 0. Ejemplos de colecciones en ADO.NET son: ??DataSet: Es una coleccin de DataTables ??DataTable: Es una coleccin de DataRow ??DataRow: Es una coleccin de DataColumn

59

Qu es y cmo se usa un objeto DataView?


Un objeto DataView permite mostrar un objeto DataTable bajo distintos parmetros. Es decir permite mostrar un subconjunto de los datos de un DataTable. Por ejemplo, los datos se pueden ordenar y filtrar. El objeto DataView luego puede ser asociado a un control. Ejemplos: La propiedad DefaultView devuelve la vista predeterminada de una tabla
Dim dv As DataView = ds.Tables(TablaClientes).DefaultView

Configurando una vista distinta de un objeto DataTable


Dim dv as New DataView(ds.Tables(TablaClientes)) dv.RowFilter = CustomerID=Wolza

Ejemplo completo de uso de un DataSet


El los datos de un DataSet se cargan partir de objetos DataTables. Primero se debe declarar un objeto DataSet y luego se lo carga con los datos obtenidos a partir de algn objeto DataAdapter.
'el siguiente cdigo crea un DataSet y lo carga con Datos Dim ds As New DataSet da.fill (ds, "Customers") 'para acceder a un objeto DataTable dentro de un DataAdapter 'debe usar el siguiente cdigo ds.Tables ("Customers") 'para acceder al valor de un columna en un objeto DataTable use el cdigo ds.Tables ("Customers").Rows(x).Item("CompanyName")

60

'x es el ndice del elemento dentro del objeto DataTables 'CompanyName es el nombre de la columna en el elemento x 'Veamos como recorrer un objeto DataTable y mostrar sus campos Dim r As DataRow Dim str As String For Each r In ds.tables("Customers").rows str = r(0) 'agrega el valor de la primera columna str += " " 'espacio en blanco str += r ("CompanyName") 'agrega el valor del Campo llamado Nombre Response.Write (str) 'devuelve al cliente el string que arm Next 'el operador de string += concatena lo que tiene la variable a la 'derecha del operador con el string que se pone a la izquierda del operador.

Tomado del libro Aplicaciones y Servicios Web con ASP .Net y SQL Server 2000, material de estudio del Taller Virtual Aplicaciones y Servicios Web con ASP .Net y SQL Server 2000, lo invitamos a participar.

61

Potrebbero piacerti anche