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 dure 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 Servidores 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 ci 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.

Abrimos Microsoft Access.

2.

Seleccionamos el Men Archivo | Nuevo. Elija proyecto


usando nueva base de datos.

3.

Nombre el proyecto como testDB y gurdelo en la carpeta


que crea conveniente.

4.

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.

6.

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.

7.

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:

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.

9.

Aparecer en la pantalla el diseador de tablas vaco.


Primero, creamos la tabla producto con las siguiente
estructura:

26

Tabla: Productos
Campo

Ejemplo
de datos

Tipo de
datos

Tamao
estimado
de los
datos

IDProducto (PK)

12345

Numrico

Nmeros
positivos
sin
decimales

Descripcin

Harina de
pescado

Texto

25
caracteres

PrecioUnitario

23.25

Monetario

0.00 hasta
10,000.00

Stock

50

Numrico

0 hasta
9,999

UnidaddeMedida

40 100
gr.

Texto

25
caracteres

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 de 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

IDCliente
(PK)

123456

Nombres

Ral Rodrigo

Texto

15 caracteres

Apellidos

Alonso Ruiz

Texto

15 caracteres

DNI

20036989

Texto

8 caracteres

Domicilio

Jr. Cuzco 222

Texto

30 caracteres

Ciudad

Huancayo

Texto

20 caracteres

Telfono

064-232425

Texto

12 caracteres

Email

ralonso31@hotm
ail.com

Texto

50 caracteres

30

Numrico

Tamao
estimado de los
datos
Nmeros
positivos
decimales

sin

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

IDPedido
(PK)

Fecha
Pedido
IDCliente
(FK)

de

Ejemplo de
datos

Tipo de
datos

Tamao
estimado de
los datos

1000

Numrico

Nmeros
positivos sin
decimales

30/08/2003

Fecha

Una fecha
vlida

123456

Numrico

Nmeros
positivos sin
decimales

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 retornar 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

IDPedido
(PK)

1000

Numrico

Nmeros
positivos sin
decimales

IDProducto
(PK)

12345

Numrico

Nmeros
positivos sin
decimales

Precio

23.25

Monetario

Cantidad

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 el 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.

Abrimos Microsoft Access.

2.

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.

3.

Cerramos la pantalla de presentacin de la aplicacin


Northwind de manera que pasemos a la ventana principal
del proyecto.

4.

Desde el men Herramientas, seleccionamos Utilidades


de Base de Datos | Asistente de Migracin

5.

Se mostrar el asistente

6.

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.

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

Propsito

Objeto SQL
Server 7.0 o
2000

Objeto
para un
origen
OLEDB

Connection

Provee
conectividad a
un Origen de
Datos

SqlConnectio
n

OleDBCo
nnection

Command

Provee acceso
a comandos de
Base de Datos
como Select,
Delete, Insert y
Update

SqlCommand

OleDBCo
mmand

DataReader

Provee acceso
a datos de solo
lectura

SqlDataRead
er

OleDBDat
aReader

DataAdapter

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

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 permite 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

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

Funcin

SelectCommand

Obtiene registros
origen de Datos

InsertCommand

Inserta registro
origen de datos

UpdateCommand

Modifica registros en un
origen de datos

DeleteCommand

Borra registros
origen de datos

56

de

en

en

un

un

un

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

DataReader
de

Lectura nicamente

Puede incluir varias tablas y


distintos orgenes de datos

Basado
en
una
sola
sentencia SQL de una sola
base de datos

Modelo desconectado

Modelo conectado

Se puede asociar a muchos


controles

Se puede asociar a un solo


control

Se puede recorrer los datos


hacia delante y hacia atrs

nicamente hacia delante

Acceso ms lento

Acceso ms rpido

Sportado por la herramientas


de Visual Studio .NET

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