Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROGRAMACIN III
Taller: Conexin a una base de datos de Acces.
Prepar: Profesor: Andrs Acua Cano, Ing, Msc.
Tabla de contenido
INFORMACIN GENERAL SORE EL ACCESO A DATOS EN ASP!NET "
CONTROLES DE ORIGEN DE DATOS #
CONTROLES ENLA$ADOS A DATOS #
CREAR UNA ASE DE DATOS EN ACCES CON LAS TALAS SIGUIENTES% &
RECUPERAR ' MOSTRAR REGISTROS DE UNA ASE DE DATOS DE ACCESS MEDIANTE
ASP!NET( ADO!NET ' VISUAL C) !NET &
CREAR UNA ASE DE DATOS AL MENOS CON UNA TALA! &
CRAR !"A P#$I"A A%P& '
ADICIN( MODIFICACIN( INSERCIN ' US*UEDA DE REGISTROS EN UNA ASE DE
DATOS +,
CONECCIN A ASE DE DATOS UTILI$ANDO S*L SERVER VERSION -,," +"
AGREGAR UN NUEVO REGISTRO +"
CREAR LA CONE.IN A LA ASE DE DATOS +"
AGREGAR UN NUEVO CLIENTE +"
CDIGO PARA AGREGAR UN CLIENTE NUEVO! +#
PARA CRAR !" %ITI( )* +, %I%TMA + ARC-I.(% /'
PARA A$R$AR 0 C("1I$!RAR !" C("TR(, $RI+.I) 2! PRMITA M(%TRAR +AT(% /3
PARA PR(*AR ,A P#$I"A 45
PARA A$R$AR (R+"ACI6" 0 PA$I"ACI6" 45
PARA A$R$AR , C!A+R( + T&T( 2! PRMIT %PCI1ICAR !"A CI!+A+ 47
PARA M(+I1ICAR ,A C("%!,TA C(" !" 1I,TR( PARAMTRI8A+( 47
PARA PR(*AR , 1I,TRA+( 49
PARA CRAR !" %ITI( )* + %I%TMA + ARC-I.(% 4:
PARA %TA*,CR ,(% PRMI%(% + ,A CARPTA APP;+ATA 4'
PARA A$R$AR !" C("TR(, ACC%%+ATA%(!RC A ,A P#$I"A 43
PARA PR(*AR ,A P#$I"A 5<
E.PORTACIN DE DATOS A UN ARC/IVO .ML 0-
!na aplicacin =eb co>pleta debe incluir una base de datos en la cual se al>acenaran los
datos rele?antes del negocio ob@eto de la aplicacin asA co>o la infor>acin de los usuarios
Bue pueden acceder C Bue tienen per>isos especiales segDn su tipo.
Conceptos bsicos de Base de Datos
Casi toda la >aCorAa de >ane@adores de base de datos creados Easta aEora estFn orientados a
la gestin de base de datos relacionalesG sobre las cuales podrAa>os decir Bue son aBuellas
Bue en las cuales los datos se organiHan en registros o Ilas Bue confor>an tablas las cuales
estFn relacionadas >ediante algDn ca>po especAIco. sto per>ite tener >ucEas restricciones
por e@e>plo Bue no se pueda eli>inar de una tabla de clientes un cliente en particular Easta
tanto en una tabla de pedidos tenga asociado uno.
Tablas
!n ob@eto bidi>ensional, consistente en Ilas C colu>nas, utiliHado para al>acenar datos en
una base de datos relacional. Cada tabla al>acena infor>acin acerca de uno de los tipos de
ob@etos >odelados por la base de datos. Por e@e>plo, una base de datos de educacin tendrAa
una tabla de >aestros, una segunda tabla de estudiantes, C una tercera tabla de clases.
,as colu>nas de una tabla representan un atributo del ob@eto >odelado Jpor e@e>plo, no>bre,
apellido C direccinK. Cada Ila representa una ocurrencia en el ob@eto >odelado. Por e@e>plo,
una Ila en la tabla -orario registrarAa la infor>acin acerca de la clase Algebra / lle?ada a
cabo a las 3:<< A.M. C otra registrarAa la infor>acin acerca de un -orario de Progra>acin III
i>partida a las /<:<< A.M.
Vistas
!n ob@eto de base de datos Bue puede ser referenciado de la >is>a >anera Bue una tabla en
declaraciones %2,. ,as ?istas son deInidas utiliHando la declaracin %,CT C son anFlogas a
un ob@eto Bue contiene el grupo de resultados de esta declaracin.
ndices
n una base de datos relacional, un ob@eto de base de datos Bue brinda acceso rFpido a datos
en las Ilas de una tabla, basado en ?alores cla?es. ,os Andices ta>bin Eacen cu>plir la
propiedad de las Ilas de una tabla de ser Dnicas. %2, %er?er soporta Andices clustered C nonL
clustered. ,a cla?e principal de una tabla se indexa auto>Ftica>ente. n una bDsBueda de
texto co>pleto, un Andice de texto co>pleto al>acena infor>acin acerca de palabras
signiIcati?as C su ubicacin en una colu>na en particular.
Restricciones
!na propiedad asignada a la colu>na de una tabla Bue pre?iene Bue ciertos tipos de ?alores
de datos in?Flidos sean ubicados en la colu>na. Por e@e>plo, una restriccin !"I2! o
PRIMAR0 M0 e?ita Bue inserte un ?alor Bue es un duplicado de un ?alor existente, una
restriccin C-CM pre?iene Bue inserte un ?alor Bue no eBuipara una condicin de bDsBueda,
C una restriccin "(T "!,, pre?iene Bue inserte un ?alor "!,,.
Motor de Base de Datos
l Motor de *ase de +atos es el progra>a Bue >ane@a los arcEi?os de la base de datos, el
acceso a las Tablas JC relacionesK, puede per>itir tener seguridad, o bloBuear una Ila Bue estF
siendo >odiIcada, para Bue nadie >Fs la >odiIBue, entre otras cosas.
A su ?eH todos los Motores tienen un Cliente, este progra>a +* estar en la ser?idor o PC
Bue intentarF acceder a los datos de >is tablas Jexcepto Bue lo estn accediendo a tra?s de
una pFgina )eb donde el cliente deberF estar instalado en el %er?er donde est la pFginaK
xisten cientos de Motores, algunos Bue per>iten Bue los usuarios acceden fAsica>ente al
arcEi?o donde estF guardada la infor>acin Jco>o por e@e>plo el Microsoft AccessK, otros Bue
no per>iten Bue los arcEi?os estn disponibles Jco>o Microsoft %2, %er?er, (racle, +*4, etcK
C un tercero Bue si bien no es un >otor en si >is>o co>o es una prFctica Eabitual, lo
>encionare>os Bue es el uso de ArcEi?os de texto JBue pueden o no estar en for>ato &M,K
Por supuesto cada >otor brinda di?ersa cantidad de ser?icios C uno puede ser >Fs
con?enientes Bue otro C en cada caso se debe e?aluar, la relacin Costo N *eneIcio para elegir
uno.
El lenguaje
AEora Bue Ca sabe>os aunBue sea un poco de *ase de datos, ustedes se estarFn preguntando
co>o Eace>os para leer los datos de nuestra *ase. *ueno resulta Bue existe un lengua@e
conocido co>o Transac Jo %2, TransacK Bue Oen generalO es co>Dn para todos los >otores de
bases de datos.
ste lengua@e cuenta principal>ente con 7 co>ando funda>entales.
%,CT
I"%RT
!P+AT
+,T
%intaxis de las instrucciones para el acceso a base de datos:
A continuacin se >uestra la sintaxis general de las instrucciones para acceder a una base de
datosG aunBue cada >otor >ane@ador de base de datos pueda Bue ca>bie un poco.
SELECT
Este comando se utiliza para leer datos de una o ms tablas.
Sintaxis
SELECT [campo1], [campo2],
FROM [tabla1]
WHERE [campo1]='valor buca!o'
Por ejemplo si quisiera ver la fila 'Nombre' de mi Tabla 'Clientes' escribira!
SELECT "ombr# FROM Cl$#"t#
" si quisiera ver toda la informaci#n de mi clientes de $pellido! 'Perez' escribira!
SELECT % FROM Cl$#"t# WHERE &p#ll$!o=''#r#('
Noten que para ver todos los campos us% un asterisco &'( ) que el valor de texto que busco
est entre comillas simples &'( para definirlo como una cadena de caracteres
INSERT
*nsertar una fila en una tabla
Sintaxis!
)*SERT [Tabla] + [Campo1], [Campo2], ,
-&L.ES +'-alor1','-alor2',,
Ejemplo! *nsertar un Nuevo Cliente
)*SERT Cl$#"t# +"ombr#, ap#ll$!o,
-&L.ES +'Facu"!o', '/0#r',
!D"TE #actuali$ar%
$ctualiza la informaci#n de un campo en una o muc+as filas
Sintaxis
.'/&TE [Tabla]
SET [campo1]='*u#vo -alor'
WHERE [Campo1]='-$#1o -alor'
Ejemplo si quisiera actualizar en mi tabla Productos, el campo Precio a '-.,/' de la '0ebida de
Cola'
.'/&TE pro!ucto
SET 'r#c$o=1,2
WHERE *ombr#'ro!ucto='3#b$!a !# Cola'
DELETE #Borrar%
Elimina una o muc+as filas
Sintaxis
/ELETE [tabla1]
WHERE campo1='-alor'
Ejemplo quiero sacar todas las bebidas Cola de mi tabla Productos
/ELETE 'ro!ucto
WHERE *ombr#'ro!ucto='3#b$!a !# Cola'
Ten1an en cuenta que la expresi#n 23E4E acepta los operadores 54 ) $N6 que dan muc+a
precisi#n a las consultas &o 7ueries(
Por supuesto +a) muc+o ms sobre Transac ) como usarlo &mezclas ) usos combinados( pero
solo quiero mostrarles aquellos que van a usar directamente con $65.NET &como para
empezar(
Tambi%n escuc+arn +ablar de Procedimientos $lmacenados &o Stored Procedures( estos son un
conjunto de comandos Transac que estn 1uardados en el 8otor de 0ase de datos ) que al
ejecutarlos +acen al1o &como por ejemplo eliminar un re1istro de una tabla, darlo de alta en
otra ) devolver el nuevo identificador 9nico(. Estos SP pueden recibir o devolver parmetros
&valores que le indiquen que es lo que tiene que +acer o que indiquen que es lo que +izo(
In1o23aci4n 5ene2al 6ob2e el acce6o a dato6 en ASP!NET
$65.NET explicado de una forma mu) sencilla, es un conjunto de $ssemblies que forman parte
del .Net :rame;or< que nos permiten comunicarnos con los motores de 0ases de 6atos, leer
datos, actualizarlos ) dems, de una manera mu) rpida ) extremadamente sencilla.
Para esto $65.NET tiene varios =Clientes= de 0ases de 6atos ) todos se encuentran en el
espacio de nombres! S)stem.6ata
> S)stem.6ata.SqlClient ¶ conectarse a los 8otores 8sS7? Server @.A o superior(
> S)stem.6ata.5le6b ¶ todo lo que no se 8sS7? Server @.A o superior(
> S)stem.6ata.5racle &que est disponible a partir del .NET :rame;or< B.A ) es para
conectarse a motores 5racle(
?as aplicaciones 2eb obtienen acceso normalmente a los or1enes de datos para el almacenamiento ) la recuperaci#n de
datos dinmicos. Se puede escribir c#di1o para el acceso a los datos utilizando clases del espacio de nombres
S)stem.6ata &normalmente denominado $65.NET( ) del espacio de nombres S)stem.Cml. Este enfoque era normal en
versiones anteriores de $SP.NET.
Sin embar1o, $SP.NET tambi%n permite realizar el enlace de datos mediante declaraci#n. Este proceso no requiere la
existencia de c#di1o para los escenarios de datos ms comunes, entre los que se inclu)en!
Conectarse a una base de datos de 8icrosoft S7? Server con la +erramienta de desarrollo 2eb 8icrosoft Eisual
2eb 6eveloper.
Dtilizar la caracterstica de arrastrar ) colocar para crear elementos de acceso a datos que se puedan utilizar en
la p1ina sin c#di1o.
Crear una consulta filtrada con la que s#lo se muestren los re1istros seleccionados.
4equisitos previos
Para poder completar este tutorial, necesitar lo si1uiente!
Si la base de datos Nort+;ind no se encuentra en el mismo equipo que el servidor 2eb, deber tener un
nombre de usuario ) una contraseHa para una cuenta de usuario de S7? Server con acceso a la base de datos
Nort+;ind.
Nota
%i necesita infor>acin sobre c>o iniciar sesin en %2, %er?er, pngase en contacto con el ad>inistrador del ser?idor.
Dna conexi#n con un ori1en de datos &como, por ejemplo, una base de datos(.
En el procedimiento si1uiente crear una conexi#n a la base de datos Nort+;ind de S7? Server.
Dn control de ori1en de datos en la p1ina con el que se ejecuten las consultas ) se administren los resultados
de %stas.
Trabajar con 8icrosoft $ccess en lu1ar de con S7? Server. &No se puede utilizar dependencia de cac+% de S7?
con $ccess(.
Para obtener informaci#n detallada, vea Tutorial! Crear una p1ina 2eb para mostrar datos de una base de datos de
$ccess.
Crear un componente de nivel medio &comercial( que se encar1ue del acceso a datos ), a continuaci#n, utilizar
ese recurso como ori1en de datos en una p1ina.
Para obtener informaci#n detallada, vea Tutorial! Enlace de datos a un objeto comercial personalizado.
Eea tambi%n
Conceptos
*nformaci#n 1eneral sobre los controles de ori1en de datos
Tutorial: Crear una pgina Web para mostrar datos de una base de datos
de Access
?a +erramienta de desarrollo 2eb 8icrosoft Eisual 2eb 6eveloper permite crear p1inas 2eb que funcionan con datos de
diversos or1enes, entre los que se inclu)en bases de datos, arc+ivos C8? ) objetos comerciales. Este tutorial muestra
c#mo trabajar con los datos de una base de datos de 8icrosoft $ccess &arc+ivo .mdb(.
6urante este tutorial aprender a +acer lo si1uiente!
El arc+ivo Nort+;ind.mdb que contiene la versi#n para $ccess de la base de datos Nort+;ind de ejemplo.
Si lo prefiere, puede usar otro arc+ivo .mdb de $ccess ) ajustar los pasos del tutorial para que coincidan con las
tablas utilizadas.
Si lo desea, Servicios de 8icrosoft *nternet *nformation Server &**S( instalado localmente en el equipo.
Esto permite comprobar que el sitio 2eb tiene los derec+os de usuario adecuados para utilizar una base de datos de
$ccess en un entorno de producci#n.
Crear el sitio ) la p1ina 2eb
Si )a +a creado un sitio 2eb en Eisual 2eb 6eveloper completando Tutorial! Crear una p1ina 2eb bsica en Eisual 2eb
6eveloper, puede utilizar ese sitio 2eb e ir a la secci#n si1uiente. 6e lo contrario, cree un sitio ) una p1ina 2eb nuevos
si1uiendo estos pasos.
!ara crear un sitio 0eb de siste(a de arc1i*os
.. $bra Eisual 2eb 6eveloper.
B. En el men9 "rc1i*o, +a1a clic en Nue*o sitio 0eb.
$parece el cuadro de dilo1o Nue*o sitio 0eb.
I. En !lantillas instaladas de Visual Studio, +a1a clic en Sitio 0eb "S!+NET.
J. En el cuadro bicaci6n situado ms a la izquierda, +a1a clic en BTT!.
/. 3a1a clic en Examinar.
$parecer la p1ina Seleccionar ubicaci#n.
K. 3a1a clic en IIS local ), a continuaci#n, en Sitio 0eb predeter(inado.
@. 3a1a clic en el icono Crear nueva aplicaci#n 2eb & ( ), a continuaci#n, asi1ne a la nueva aplicaci#n 2eb el
nombre "ccessSa(ple.
L. 3a1a clic en "brir.
El cuadro de dilo1o Nuevo sitio 2eb aparece con la ubicaci#n de la nueva aplicaci#n 2eb en el cuadro bicaci6n
situado ms a la derec+a.
M. En la lista Lenguaje, +a1a clic en el len1uaje de pro1ramaci#n con el que prefiera trabajar.
El len1uaje de pro1ramaci#n que elija ser el len1uaje predeterminado de su sitio 2eb, pero tambi%n puede
establecer el len1uaje de pro1ramaci#n de cada p1ina de forma individual.
.A. 3a1a clic en "ceptar.
Eisual 2eb 6eveloper crea la carpeta ) una nueva p1ina denominada 6efault.aspx. El sitio 2eb se muestra en el
E,plorador de soluciones.
Confi1urar permisos para una base de datos de $ccess
Dn aspecto importante de trabajar con un arc+ivo .mdb de $ccess es confi1urar correctamente los permisos. Cuando una
aplicaci#n 2eb utiliza una base de datos de $ccess, debe tener permiso de lectura en el arc+ivo .mdb para que la
aplicaci#n pueda tener acceso a los datos. $dems, la aplicaci#n debe tener permiso de escritura en la carpeta que
contiene el arc+ivo .mdb. Se necesita permiso de escritura porque $ccess crea un arc+ivo adicional con la extensi#n .ldb
en el que conserva informaci#n relativa a los bloqueos de la base de datos para usuarios simultneos. El arc+ivo .ldb se
crea en tiempo de ejecuci#n.
6e manera predeterminada, las aplicaciones 2eb $SP.NET se ejecutan en el contexto de una cuenta de equipo local
denominada $SPNET ¶ 2indo;s BAAA ) 2indo;s CP( o en el contexto de la cuenta NET254Q SE4E*CE ¶
2indo;s Server BAAI(. Por ejemplo, para 2indo;s BAAA o 2indo;s CP Professional, si el servidor 2eb se denomina
$0CServer, las aplicaciones $SP.NET del equipo $0CServer se ejecutan en el contexto de la cuenta local
$0CServerR$SPNET. Por tanto, para usar una base de datos de $ccess en una aplicaci#n 2eb $SP.NET, debe confi1urar la
carpeta que contiene la base de datos de $ccess de manera que ten1a permisos de lectura ) escritura en la cuenta de
usuario $SPNET local.
Cuando se crea un sitio 2eb en Eisual 2eb 6eveloper, Eisual 2eb 6eveloper crea una carpeta denominada $ppS6ata
dentro de la carpeta raz actual. ?a carpeta est diseHada para ser un almac%n de datos de aplicaci#n, incluidas las bases
de datos de $ccess. $SP.NET utiliza tambi%n la carpeta $ppS6ata para almacenar las bases de datos que el sistema
mantiene, como la base de datos de suscripci#n ) funciones. Cuando Eisual 2eb 6eveloper crea la carpeta $ppS6ata,
otor1a permisos de lectura ) escritura en la carpeta a la cuenta de usuario $SPNET o NET254Q SE4E*CE.
Nota
Co>o >edida de seguridad, el ser?idor )eb no su>inistra los arcEi?os de la carpeta App;data. "o al>acene ninguna
pFgina )eb en la carpeta App;+ata, porBue los usuarios ?erFn un error si solicitan una pFgina de esa carpeta.
En esta parte del tutorial, examinar los permisos de la carpeta $ppS6ata para ase1urarse de que funcionar
correctamente cuando se ejecute la aplicaci#n.
!ara establecer los per(isos de la carpeta "ppDData
.. En el Explorador de 2indo;s, desplcese a la carpeta raz del sitio 2eb.
?a ubicaci#n predeterminada para el nuevo sitio 2eb es c!RinetpubR;;;rootR$ccessSample.
B. Si la carpeta "ppDData no existe a9n, cr%ela.
6e forma predeterminada, Eisual 2eb 6eveloper crea la carpeta cuando se crea un nuevo sitio 2eb.
I. 3a1a clic con el bot#n secundario en la carpeta $ppS6ata, +a1a clic en !ropiedades ), a continuaci#n, +a1a clic
en la fic+a Seguridad.
J. En No(bres de grupos o usuarios, busque cualquiera de estas cuentas de usuario!
o Si el equipo est ejecutando 2indo;s CP Professional o 2indo;s BAAA, busque computerR$SPNET.
o Si el equipo est ejecutando 2indo;s Server BAAI, busque NET254Q SE4E*CE.
/. Compruebe que la cuenta tiene permisos de lectura ) escritura en la carpeta $ppS6ata.
Dsar datos de $ccess en una p1ina 2eb de $SP.NET
$+ora puede utilizar la base de datos de $ccess en una p1ina 2eb. Dsar un control "ccessDataSource.
!ara agregar un control "ccessDataSource a la pgina
.. En Eisual 2eb 6eveloper, en el E,plorador de soluciones, +a1a clic con el bot#n secundario en la carpeta
$ppS6ata ), a continuaci#n, +a1a clic en $1re1ar elemento existente.
B. 0usque el arc+ivo Nort+;ind.mdb &u otro arc+ivo .mdb de $ccess( que desee utilizar en este tutorial.
I. En la carpeta $ppS6ata, +a1a clic en el arc+ivo .mdb ), a continuaci#n, en $1re1ar.
Se a1re1ar el arc+ivo .mdb a la aplicaci#n.
J. $bra la p1ina 6efault.aspx ) cambie a la vista 6iseHo.
/. 6esde el 1rupo 6atos del Cuadro de +erramientas, arrastre un control "ccessDataSource +asta la p1ina.
o Si el men9 contextual 2btener acceso a tareas de origen de datos no aparece, +a1a clic con el
bot#n secundario en el control "ccessDataSource ), a continuaci#n, +a1a clic en Mostrar eti-ueta
inteligente.
K. En el men9 contextual 2btener acceso a tareas de origen de datos, +a1a clic en Con:igurar origen de
datos.
$parecer la ventana Confi1urar ori1en de datos P TDataSourceNameU.
@. En la p1ina Elija una base de datos, en el cuadro "rc1i*o de Microso:t "ccess Data, escriba
EF"ppDDataFNort1&ind+(db.
o Si lo prefiere, +a1a clic en E,a(inar ), a continuaci#n, en el cuadro de dilo1o Seleccionar base de
datos de Microso:t "ccess, va)a al arc+ivo Nort+;ind.mdb de la carpeta $ppS6ata.
L. 3a1a clic en Siguiente.
$parece la p1ina Con:igurar instrucci6n Select.
M. 3a1a clic en Especi:icar colu(nas de una tabla o *ista.
.A. En la lista Nombre, +a1a clic en Categor@as.
... $ctive las casillas de verificaci#n IdCategor@a, No(breCategor@a ) Descripci6n.
.B. 3a1a clic en Siguiente.
$parece la p1ina Consulta de prueba.
o Si lo prefiere, +a1a clic en Consulta de prueba para probar la consulta.
.I. 3a1a clic en 'inali$ar.
.J. 6esde el 1rupo 6atos del Cuadro de 1erra(ientas, arrastre un control FridEie; +asta la p1ina.
o Si el men9 contextual Tareas de 5ridVie& no aparece, +a1a clic con el bot#n secundario en el control
5ridVie& ), a continuaci#n, +a1a clic en Mostrar eti-ueta inteligente.
./. En el men9 Tareas de 5ridVie&, en el cuadro Elegir origen de datos, +a1a clic en "ccessDataSource..
Probar la p1ina
$+ora puede ejecutar la p1ina.
!ara probar la pgina
Crear p1inas para mostrar datos de $ccess de tablas que tienen una relaci#n principalPdetalle.
Para obtener informaci#n detallada, vea Tutorial! Crear p1inas 2eb principalPdetalle en Eisual Studio.
Eea tambi%n
Conceptos
*nformaci#n 1eneral sobre el acceso a datos en $SP.NET
Establecer enlaces a datos utilizando un control de ori1en de datos
E=7o2taci4n de dato6 a :n a2cIi<o .ML
A continuacin se presenta el cdigo necesario para exportar a un arcEi?o .&M, el contenido
de una tabla incluida en una base datos. l propsito es exportar el contenido de una tabla a
un arcEi?o &M, es utiliHar la potencia de presentacin C el dina>is>o Bue se puede tener al
utiliHar un arcEi?o de deInicin de docu>ento J+T+ K C una Eo@a de transfor>acin para el
for>ato dC la presentacin Je&tensible %tClesEeet ,anguage Transfor>ation &%,TK.
l propsito conlle?a los siguientes pasos.
/. Crear el arcEi?o +T+ de acuerdo a los ca>pos Bue confor>an la tabla o >e@or los
ca>pos Bue se reBuieren >ostrar.
Para ilustrar el e@ercicio se utiliH la siguiente tabla:
4. $enerar el arcEi?o de presentacin &%,T.
5. $enerar el cdigo en CV Bue per>ite:
W Accesar a la base de datos C leer la infor>acin.
W scribir el arcEi?o W.&M,
W Mostrar el arcEi?o &M,
A continuacin se >uestra el cdigo co>pleto con el cual se logra el ob@eti?o
u$"7 S;t#mF
u$"7 S;t#m</ataF
u$"7 S;t#m</ata<Ol#/bF
u$"7 S;t#m<Co"B$7urat$o"F
u$"7 S;t#m<Coll#ct$o"F
u$"7 S;t#m<W#bF
u$"7 S;t#m<W#b<S#cur$t;F
u$"7 S;t#m<W#b<.)F
u$"7 S;t#m<W#b<.)<W#bCo"trolF
u$"7 S;t#m<W#b<.)<W#bCo"trol<W#b'artF
u$"7 S;t#m<W#b<.)<HtmlCo"trolF
u$"7 S;t#m<)OF
publ$c part$al cla l$tarCl$#"t# I S;t#m<W#b<.)<'a7#
>
prot#ct#! vo$! 'a7#=Loa!+ob1#ct #"!#r, Ev#"t&r7 #,
>
?? Cr#a u"a ca!#"a !# co"#cc$A" para ma"#1ar #l arc0$vo
tr$"7 F)LE=*&ME = :CI?$"#tpub?JJJroot?a$c#m?cl$#"t#<@ml:F
??-ar$abl# para almac#"ar la ca!#"a !# co"#@$A" Co""#ct$o"Str$"7<
Str$"7 m;Co""#ct$o"Str$"7 = :'rov$!#r=M$crooBt<C#t<OLE/3<D<EF /ata Sourc#=: G
S#rv#r<Map'at0+6:&pp=/ataHb!a$c#m<m!b:, G :F:F
??Cr#ar u" ob1#to Ol#/bCo""#ct$o"
??; paar la Co""#ct$o"Str$"7 al co"tructor<
Ol#/bCo""#ct$o" m;Co""#ct$o" = "#J Ol#/bCo""#ct$o"+m;Co""#ct$o"Str$"7,F
??S$ #l arc0$vo #@$t# lo borra
$B +F$l#<E@$t+F)LE=*&ME,,
>
R#po"#<Wr$t#+:>EN alr#a!; #@$t<:,F
F$l#</#l#t#+F)LE=*&ME,F
??r#tur"F
N
??&br$r la co"#@$A"<
m;Co""#ct$o"<Op#"+,F
??.t$l$(ar u"a var$abl# para almac#"ar la $"trucc$A" SKL<
tr$"7 m;S#l#ct = :SELECT % FROM cl$#"t#:F
??Cr#ar u" ob1#to Ol#/bComma"!<
??Ob#rv# Lu# paamo la $"trucc$A" SKL ; #l ob1#to Ol#/bCo""#ct$o"<
Ol#/bComma"! m;Comma"! = "#J Ol#/bComma"!+m;S#l#ct, m;Co""#ct$o",F
??E"v$ar #l Comma"!T#@t a la co"#@$A" ; cr#ar u" Ol#/b/ataR#a!#r<
??*otaI El Ol#/b/ataR#a!#r # !# Alo ava"c#<
Ol#/b/ataR#a!#r m;R#a!#r = m;Comma"!<E@#cut#R#a!#r+,F
??R#corr#r lo r#7$tro !# u"o #" u"o<
$B +m;R#a!#r<R#a!+,,
>
?? Cr#a #l arc0$vo ; #cr$b# #" #l la co"ulta
u$"7 +Str#amWr$t#r J = F$l#<Cr#at#T#@t+F)LE=*&ME,,
>
J<Wr$t#L$"#+:4T@ml v#r$o"=H:1<EH: #"co!$"7='utBUV'T9:,F
J<Wr$t#L$"#+:4W/OCTX'E cl$#"t# SXSTEM H:cl$#"t#<!t!H:9:,F
J<Wr$t#L$"#+:4cl$#"t# co"ta!or =H:1H:9:,F
J<Wr$t#L$"#+:4cl$#"t#:,F
J<Wr$t#L$"#+:$!Cl$#"t# =H:: G m;R#a!#r[:$!Cl$#"t#:]<ToStr$"7+,
G:H::,F
J<Wr$t#L$"#+:"ombr# =H:: G m;R#a!#r[:"ombr#:]<ToStr$"7+, G
:H::,F
J<Wr$t#L$"#+:ap#ll$!o =H:: G m;R#a!#r[:ap#ll$!o:]<ToStr$"7+, G
:H::,F
J<Wr$t#L$"#+:#mpr#a =H:: G m;R#a!#r[:#mpr#a:]<ToStr$"7+, G
:H::,F
J<Wr$t#L$"#+:car7o =H:: G m;R#a!#r[:car7o:]<ToStr$"7+, G :H::,F
J<Wr$t#L$"#+:t#l#Bo"o=H:: G m;R#a!#r[:t#l#Bo"o:]<ToStr$"7+, G
:H::,F
J<Wr$t#L$"#+:Ba@ =H:: G m;R#a!#r[:Ba@:]<ToStr$"7+, G :H::,F
J<Wr$t#L$"#+:#ma$l =H:: G m;R#a!#r[:#ma$l:]<ToStr$"7+, G :H::,F
J<Wr$t#L$"#+:!$r#cc$o" =H:: G m;R#a!#r[:!$r#cc$o":]<ToStr$"7+, G
:H::,F
?%
% /ato $" $"clu$r #" YML por #7ur$!a! r#p#cto al cl$#"t#
t0$<t@tLo7$"<T#@t = m;R#a!#r[:lo7$":]<ToStr$"7+,F
t0$<t@tClav#<T#@t = m;R#a!#r[:clav#:]<ToStr$"7+,F
%?
J<Wr$t#L$"#+:#pac$o = H: H::,F
J<Wr$t#L$"#+:9:,F
J<Wr$t#L$"#+:4ob#rvac$o"#9: G
m;R#a!#r[:ob#rvac$o"#:]<ToStr$"7+, G :4?ob#rvac$o"#9:,F
J<Wr$t#L$"#+:4?cl$#"t#9:,F
J<Wr$t#L$"#+:4?cl$#"t#9:,F
J<Clo#+,F
N
N ?? B$" crac$A" !# arc0$vo
#l#
>
R#po"#<Wr$t#+:*o # #"co"traro" !ato #" la tabla cl$#"t#:,F
N
R#po"#<R#!$r#ct+:?a$c#m?cl$#"t#<@ml:,F
N
N