Está en la página 1de 34

UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS

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 &para conectarse a los 8otores 8sS7? Server @.A o superior(
> S)stem.6ata.5le6b &para 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!

Seleccionar ) mostrar datos.

5rdenar, pa1inar ) almacenar datos en memoria cac+%.

$ctualizar, insertar ) eliminar datos.

:iltrar datos utilizando parmetros en tiempo de ejecuci#n.

Crear escenarios de detalles maestros utilizando parmetros.


$SP.NET inclu)e dos tipos de controles de servidor que participan en el modelo de enlace de datos declarativo! controles
de ori1en de datos ) controles enlazados a datos. Estos controles administran las tareas sub)acentes requeridas por el
modelo 2eb sin estado para mostrar ) actualizar datos en p1inas 2eb $SP.NET. Por tanto, no es estrictamente
necesario conocer los detalles del ciclo de vida de la solicitud de p1ina si s#lo se va a realizar el enlace de datos.
Cont2ole6 de o2i5en de dato6
?os controles de ori1en de datos son controles $SP.NET que administran las tareas de conexi#n a un ori1en de datos ) de
lectura ) escritura de datos. ?os controles de ori1en de datos no representan nin1una interfaz de usuario, sino que
act9an como intermediarios entre un almac%n de datos en particular &como una base de datos, un objeto comercial o un
arc+ivo C8?( ) los dems controles de la p1ina 2eb $SP.NET. ?os controles de ori1en de datos +abilitan un amplio
conjunto de funciones para recuperar ) modificar datos, entre las que se inclu)en la consulta, la ordenaci#n, la
pa1inaci#n, el filtrado, la actualizaci#n, la eliminaci#n ) la inserci#n. $SP.NET inclu)e los controles de ori1en de datos
si1uientes!

Cont2ol de o2i5en
de dato6 De6c2i7ci4n
(b@ect+ata%ource Per>ite traba@ar con un ob@eto co>ercial u otra clase C crear aplicaciones )eb basadas en ob@etos
de ni?el >edio para ad>inistrar los datos.
Para obtener >Fs infor>acin, ?ea (b@ect+ata%ource JControl de ser?idor )ebK.
%Bl+ata%ource Per>ite traba@ar con pro?eedores de datos ad>inistrados de A+(."T, Bue proporcionan acceso a
bases de datos de Microsoft %2, %er?er, (, +*, (+*C u (racle.
Para obtener >Fs infor>acin, ?ea %Bl+ata%ource JControl de ser?idor )ebK.
Access+ata%ource Per>ite traba@ar con una base de datos de Microsoft Access.
Para obtener >Fs infor>acin, ?ea Access+ata%ource JControl de ser?idor )ebK.
&>l+ata%ource Per>ite traba@ar con un arcEi?o &M,, Bue es especial>ente Dtil para controles de ser?idor A%P."T
@erFrBuicos tales co>o el control Tree.ie= o Menu.
Para obtener >Fs infor>acin, ?ea &>l+ata%ource JControl de ser?idor )ebK.
%iteMap+ata%ource %e utiliHa con la exploracin del sitio A%P."T. Para obtener >Fs infor>acin, ?ea Infor>acin
general sobre la exploracin del sitio de A%P."T.
?os controles de ori1en de datos tambi%n se pueden ampliar para admitir proveedores de almacenamiento ) acceso a
datos adicionales.
Para obtener ms informaci#n sobre controles de ori1en de datos, vea *nformaci#n 1eneral sobre los controles de ori1en
de datos.
Cont2ole6 enla8ado6 a dato6
?os controles enlazados a datos representan datos como marcado al explorador que realiz# la solicitud. Dn control
enlazado a datos se puede enlazar a un control de ori1en de datos ) buscar datos automticamente en el momento
apropiado del ciclo de vida de la solicitud de p1ina. ?os controles enlazados a datos pueden aprovec+ar las ventajas de
las funciones proporcionadas por un control de ori1en de datos entre las que se inclu)en la ordenaci#n, la pa1inaci#n, el
almacenamiento en cac+%, el filtrado, la actualizaci#n, la eliminaci#n ) la inserci#n. Dn control enlazado a datos establece
una conexi#n con un control de ori1en de datos a trav%s de su propiedad 6ataSource*6.
$SP.NET inclu)e los controles enlazados a datos que se describen en la tabla si1uiente.
Controles de lista
4epresenta los datos en una variedad de formato de listas. Entre los controles de lista se inclu)en los controles
0ulleted?ist, C+ec<0ox?ist, 6rop6o;n?ist, ?ist0ox ) 4adio0utton?ist.
$d4otator
4epresenta los anuncios de una p1ina como una ima1en en la que los usuarios pueden +acer clic para ir a una
direcci#n D4? asociada al anuncio.
Para obtener ms informaci#n, vea $d4otator &Control de servidor 2eb(.
6ata?ist
4epresenta los datos en una tabla. Cada elemento se representa utilizando una plantilla de elemento definida por
el usuario.
Para obtener ms informaci#n, vea 6ata?ist &Control de servidor 2eb(.
6etailsEie;
8uestra un re1istro cada vez en disposici#n de tabla ) permite editar, eliminar e insertar re1istros. Tambi%n se
puede realizar la pa1inaci#n a trav%s de varios re1istros.
Para obtener ms informaci#n, vea 6etailsEie; &Control de servidor 2eb(.
:ormEie;
Es similar al control DetailsVie&, pero permite definir una disposici#n de formato libre para cada re1istro. El
control 'or(Vie& es como un control DataList para un re1istro 9nico.
Para obtener ms informaci#n, vea :ormEie; &Control de servidor 2eb(.
FridEie;
8uestra los datos en una tabla e inclu)e compatibilidad para editar, actualizar, ordenar ) pa1inar datos sin
necesidad de c#di1o.
Nota
l control G2idVie9 ree>plaHa el control +ata$rid A%P."T disponible en ?ersiones anteriores de A%P."T.
Para obtener ms informaci#n, vea FridEie; &Control de servidor 2eb(.
Menu
4epresenta los datos en un men9 dinmico jerrquico que puede incluir submen9s.
Para obtener ms informaci#n, vea 8enu &Control de servidor 2eb(.
4epeater
4epresenta los datos en una lista. Cada elemento se representa utilizando una plantilla de elemento definida por
el usuario.
Para obtener ms informaci#n, vea 4epeater &Control de servidor 2eb(.
TreeVie&
4epresenta los datos en un rbol jerrquico de nodos que se pueden expandir.
Para obtener ms informaci#n, vea TreeEie; &Control de servidor 2eb(.
C2ea2 :na ba6e de dato6 en Acce6 con la6 tabla6 6i5:iente6%
Pegarla en una carpeta lla>ada App;+ata C ubicada en la carpeta de la aplicacin
Crear un nue?o proCecto A%P."T.
Agregar una nue?a pFgina aspx lla>ada cliente.aspx.
Rec:7e2a2 ; 3o6t2a2 2e5i6t2o6 de :na ba6e de dato6 de Acce66
3ediante ASP!NET( ADO!NET ; Vi6:al C) !NET
(b@eti?o es recuperar datos de una base de datos de Microsoft Access C presentar datos al
usuario >ediante progra>acin.
%e utiliHan las clases OleDbConnection, OleDbCo33and C OleDbDataReade2, Bue for>an
parte de A+(."T C Microsoft ."T 1ra>e=orP.
C2ea2 :na ba6e de dato6 al 3eno6 con :na tabla!
Para este caso crea>os una base de datos de no>bre bdaice>.>bd C con una tabla lla>ada
clientes con: los ca>pos:
id, no>bres, apellidos, login C pass=ord.
Crear una pgina "S!)
n el cdigo de e@e>plo de esta seccin se crea una cadena Bue contendrF los datos
recuperados de la base de datos @unto con el cdigo adicional del ,engua@e de >arcado de
Eipertexto J-TM,K para producir una representacin >uC sencilla del resultado. Tenga en
cuenta Bue A%P."T ofrece di?ersos controles Bue puede utiliHar para conseguir un
procesa>iento sencillo C >e@orado de los datos.
Ade>Fs, el cdigo Bue crea la tabla -TM, incluCe alguna concatenacin de cadenas. AunBue
puede utiliHar la clase St2in5:ilde2 para conseguir este resultado con >aCor eIciencia, el
cdigo de este e@e>plo no utiliHa St2in5:ilde2 por reducir el nD>ero de co>ponentes de
."T 1ra>e=orP Bue introduce el cdigo. Para obtener >Fs infor>acin acerca de la clase
St2in5:ilde2, consulte la siguiente docu>entacin del Mit de desarrollo de soft=are J%+MK de
."T 1ra>e=orP:
Ettp:QQ>sdn.>icrosoft.co>QlibrarCQdefault.aspRurlSQlibrarCQenL
usQcprefQEt>lQfrlrf%Cste>Text%tring*uilderClassTopic.asp
JEttp:QQ>sdn.>icrosoft.co>QlibrarCQdefault.aspRurlSQlibrarCQenL
usQcprefQEt>lQfrlrf%Cste>Text%tring*uilderClassTopic.aspK
l cdigo necesario para ?isualiHar la infor>acin de la tabla es el siguiente:
45 6'a7# La"7ua7# = C8 59
456)mport *am#pac#=:S;t#m</ata:59
456)mport *am#pac#=:S;t#m</ata<Ol#/b:59
4Scr$pt la"7ua7#=:C8: ru"at=:#rv#r:9
vo$! 'a7#=Loa!+ob1#ct #"!#r, S;t#m<Ev#"t&r7 #,
>
??.t$l$(ar u"a var$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
??/ata Sourc#=CIHHF$l# /ataba#HHb!a$c#m<m!b: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
??&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 $!, "ombr#, ap#ll$!o 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
??.t$l$(ar u"a var$abl# para almac#"ar la $"Bormac$A" !#vu#lta por #l
Ol#/b/ataR#a!#r
??; #l cA!$7o !# tabla HTML Lu# ut$l$(arM para pr##"tar #l r#ulta!o<
tr$"7 Tabl#3u$l!#r = :4tabl# bor!#r=1 c#llpac$"7=19:F
??Cr#ar u"a B$la !# tabla $"$c$al Lu# co"t$#"# lo "ombr# !# colum"a<
Tabl#3u$l!#r G= :4tr94t!9439)!< !# cl$#"t#4?394?t!9:
G :4t!9439*ombr# 4?394?t!9:
G :4t!9439&p#ll$!o4?394?t!94?tr9:F
??R#corr#r lo r#7$tro !# u"o #" u"o<
J0$l#+m;R#a!#r<R#a!+,,
>
??Co"cat#"ar lo valor# !#l /ataR#a!#r para
??cr#ar ca!a B$la !# la tabla<
Tabl#3u$l!#r G= :4tr94t!9: G m;R#a!#r[:$!:] G
:4?t!94t!9: G m;R#a!#r[:"ombr#:] G
:4?t!94t!9: G m;R#a!#r[:ap#ll$!o:] G :4?t!94?tr9:F
N
Tabl#3u$l!#r G= :4?tabl#9:F
??Ecr$b$r la ca!#"a B$"al<
R#po"#<Wr$t#+Tabl#3u$l!#r,F
??C#rrar la co"#@$A" ; #l /ataR#a!#r<
m;Co""#ct$o"<Clo#+,F
m;R#a!#r<Clo#+,F
N
4?Scr$pt9
40tml @ml"=:0ttpI??JJJ<JO<or7?1PPP?@0tml: 9
40#a! ru"at=:#rv#r:9
4t$tl#9R#cup#rac$A" ; v$ual$(ac$A" !# !ato4?t$tl#9
4?0#a!9
4bo!;9
4Borm $!=:Borm1: ru"at=:#rv#r:9
4!$v9
4019/ato r#cup#ra!oI4?019
4?!$v9
4?Borm9
4?bo!;9
4?0tml9
l anterior cdigo se encarga de accesar C listar en una tabla C en una pFgina el contenido de
una tabla de una base de datos. sta for>a presenta los siguientes incon?enientes: la lgica
de progra>acin C la presentacin se encuentran en la >is>a pFgina C ade>Fs no per>ite la
adicin, >odiIcacin e insercin de registros.
,a solucin es entonces la siguiente:
ADICIN( MODIFICACIN( INSERCIN ' US*UEDA DE REGISTROS
EN UNA ASE DE DATOS
sta acti?idad presupone Bue se EaCa construido una base de datos en Acces con al >enos
una tabla J en el siguiente cdigo la base de datos es bdaice> C la tabla clientesK.
l arcEi?o de base de datos debe ser colocado en una carpeta App;+ata en la carpeta de la
aplicacin Bue >uC segura>ente estarF en el ===root.
!na cosa i>portante es Bue ste arcEi?o debe tener per>isos para acceso total del usuario
Bue esta intentando abrir la aplicacin. Para Eacer esto : Eacer cliP derecEo sobre el arcEi?o,
seleccionar propiedades, luego seguridad, editar C adicionar los per>isos.
l siguiente cdigo co>entado per>ite las consultas >encionadas:
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
publ$c part$al cla cl$#"t# I S;t#m<W#b<.)<'a7#
>
prot#ct#! vo$! 'a7#=Loa!+ob1#ct #"!#r, Ev#"t&r7 #,
>
N
prot#ct#! vo$! bt")"#rtar=Cl$cQ+ob1#ct #"!#r, Ev#"t&r7 #,
>
??.t$l$(ar u"a var$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
??&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$Co"ulta = :)*SERT )*TO cl$#"t# +$!,"ombr#, ap#ll$!o,
lo7$",clav#,#mpr#a,car7o,t#l#Bo"o,Ba@,#ma$l,!$r#cc$o",:F??,#mpr#a,car7o,t#l#Bo"o,Ba@,
#ma$l,!$r#cc$o",:F
m$Co"ulta = m$Co"ulta G : -&L.ES +: G t0$<t@t)!<T#@t G :,': G
t0$<t@t*ombr#<T#@t G :',': G t0$<t@t&p#ll$!o<T#@t G :',': G t0$<t@tLo7$"<T#@t G
:',': G t0$<t@tClav#<T#@t G :',': G t0$<t@tEmpr#a<T#@t G :',': G t0$<t@tCar7o<T#@t
G :',': G t0$<t@tT#l#Bo"o<T#@t G :',': G t0$<t@tFa@<T#@t G :',': G t0$<t@tEma$l<T#@t
G :',': G t0$<t@t/$r#cc$o"<T#@t G :',:F ??G :',': G t0$<t@tEmpr#a<T#@t G :',': G
t0$<t@tCar7o<T#@t G :',': G t0$<t@tT#l#Bo"o<T#@t G :',': G t0$<t@tFa@<T#@t G :',': G
t0$<t@tEma$l<T#@t G :',': G t0$<t@t/$r#cc$o"<T#@t G :',: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$Co"ulta, m;Co""#ct$o",F

tr;
>
m;Comma"!<E@#cut#*o"Ku#r;+,F
t0$<lblM7<T#@t = :S# $"#rto corr#ctam#"t#:F
N
catc0+E@c#pt$o" #r,
>
t0$<lblM7<T#@t = :ERROR &L )*SERT&R CL)E*TE :G #rF
N
m;Co""#ct$o"<Clo#+,F

N
prot#ct#! vo$! bt"Mo!$B$car=Cl$cQ+ob1#ct #"!#r, Ev#"t&r7 #,
>
??.t$l$(ar u"a var$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
??&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<
Str$"7 m$Co"ulta = :.'/&TE cl$#"t# SET "ombr# =': G t0$<t@t*ombr#<T#@t G
:', ap#ll$!o = ': G t0$<t@t&p#ll$!o<T#@t G :', lo7$" = ': G t0$<t@tLo7$"<T#@t G :',
clav# = ': G t0$<t@tClav#<T#@t G :', #mpr#a = ': G t0$<t@tEmpr#a<T#@t G :', car7o =
': G t0$<t@tCar7o<T#@t G :', t#l#Bo"o =': G t0$<t@tT#l#Bo"o<T#@t G :', Ba@ = ': G
t0$<t@tFa@<T#@t G :', #ma$l =': G t0$<t@tEma$l<T#@t G :', !$r#cc$o" = ': G
t0$<t@t/$r#cc$o"<T#@t G :' WHERE $! = : G t0$<t@t)!<T#@tF
??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$Co"ulta, m;Co""#ct$o",F

tr;
>
m;Comma"!<E@#cut#*o"Ku#r;+,F
t0$<lblM7<T#@t = :Mo!$B$cac$A" co" R@$to:F
N
catc0+E@c#pt$o" #r,
>
t0$<lblM7<T#@t = :ERROR &L MO/)F)C&R :G#rF
N
m;Co""#ct$o"<Clo#+,F

N
prot#ct#! vo$! bt"3ucar=Cl$cQ+ob1#ct #"!#r, Ev#"t&r7 #,
>

??.t$l$(ar u"a var$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
??&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# WHERE $! =: G t0$<t@t)!<T#@tF
??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!+,,
>
t0$<lblM7<T#@t = :Cl$#"t# #"co"tra!o:F
t0$<t@t*ombr#<T#@t = m;R#a!#r[:"ombr#:]<ToStr$"7+,F
t0$<t@t&p#ll$!o<T#@t = m;R#a!#r[:ap#ll$!o:]<ToStr$"7+,F
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
t0$<t@tEmpr#a<T#@t = m;R#a!#r[:#mpr#a:]<ToStr$"7+,F
t0$<t@tCar7o<T#@t = m;R#a!#r[:car7o:]<ToStr$"7+,F
t0$<t@tT#l#Bo"o<T#@t = m;R#a!#r[:t#l#Bo"o:]<ToStr$"7+,F
t0$<t@tFa@<T#@t = m;R#a!#r[:Ba@:]<ToStr$"7+,F
t0$<t@tEma$l<T#@t = m;R#a!#r[:#ma$l:]<ToStr$"7+,F
t0$<t@t/$r#cc$o"<T#@t = m;R#a!#r[:!$r#cc$o":]<ToStr$"7+,F
N
#l#
t0$<lblM7<T#@t = :CL)E*TE *O E*CO*TR&/O:F


m;Co""#ct$o"<Clo#+,F
m;R#a!#r<Clo#+,F
N
prot#ct#! vo$! bt"R#t$rar=Cl$cQ+ob1#ct #"!#r, Ev#"t&r7 #,
>
??.t$l$(ar u"a var$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
??&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<
Str$"7 m$Co"ulta = :/ELETE FROM cl$#"t# WHERE $! = : G t0$<t@t)!<T#@tF
??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$Co"ulta, m;Co""#ct$o",F

tr;
>
m;Comma"!<E@#cut#*o"Ku#r;+,F
t0$<lblM7<T#@t = :/ato !# cl$#"t# borra!o:F
t0$<t@t*ombr#<T#@t = ::F
t0$<t@t&p#ll$!o<T#@t = ::F
t0$<t@tLo7$"<T#@t = ::F
t0$<t@tClav#<T#@t = ::F
t0$<t@tEmpr#a<T#@t = ::F
t0$<t@tCar7o<T#@t = ::F
t0$<t@tT#l#Bo"o<T#@t = ::F
t0$<t@tFa@<T#@t = ::F
t0$<t@tEma$l<T#@t = ::F
t0$<t@t/$r#cc$o"<T#@t = ::F
N
catc0+E@c#pt$o" #r,
>
t0$<lblM7<T#@t = :ERROR &L 3ORR&R:G#rF
N
m;Co""#ct$o"<Clo#+,F

N
N
(bser?ecese Bue para accin sobre la base de datos se progra> en un boton diferente.
CONECCIN A ASE DE DATOS UTILI$ANDO S*L SERVER VERSION
-,,"
A52e5a2 :n N:e<o 2e5i6t2o
n este e@e>plo ?a>os a capturar la infor>acin correspondiente a los no>bres C apellidos
del cliente:
Crear un for>ulario con la etiBueta Tfor>U C dentro de el insertar una tabla con dos ca>pos
de texto Bue tenga la siguiente apariencia:
Nombres Apellidos
Agregar un bot#n ) en el texto escribe Nue*o cliente+
$+ora damos funcionalidad al bot#n, de forma que al pulsar en %l se cree un nuevo cliente con los datos
di1itados en los campos de texto.
3acer doble clic en el bot#n para que se muestre la ventana de c#di1o
El c#di1o se +abr mostrado en un fic+ero aparte con el mismo nombre que la p1ina ) con la extensi#n
del len1uaje ele1ido, en este caso es! cliente+asp,+cs
C2ea2 la cone=i4n a la ba6e de dato6

Insertar un control llamado S-lDataSource. que tendr todos los comandos para insertar, eliminar,
actualizar, etc.
$1re1ar al arc+ivo de c#di1o la sentencia using %Cste>.+ata.%BlClientG la cual incorpora la librerAa
para >ane@ar las consultas de acceso a la base de datos.
A52e5a2 :n n:e<o Cliente
Pri>ero crea>os una consulta para a?eriguar si existe el cliente con Id igual al Bue
necesita>os agregar. Para esto ?a>os a crear la consulta
>SELECT Co:nt?@A FROM cliente6 B/ERE id C DidE
la cual de?uel?e < en caso de no existir el cliente.
Para ejecutar esa sentencia de S7? se utiliza un objeto S-lConnection ) un objeto S-lCo((and
Para el objeto Connection se necesita una cadena de conexi#n, ) como )a tenemos en el formulario
&pa1ina 2eb( un objeto S-lDataSource, pues la tomamos de a+.
u$"7 +SLlCo""#ct$o" c"" = "#J SLlCo""#ct$o"+t0$<SLl/ataSourc#1<Co""#ct$o"Str$"7,,
>
SLlComma"! cm! = "#J SLlComma"!+
:SELECT Cou"t+%, : G
:FROM cl$#"t# : G
:WHERE $! = 6$!:, c"",F
?? &br$mo la co"#@$A"
c""<Op#"+,F
?? &Sa!$mo #l valor !#l parMm#tro !# la co"ulta
cm!<'aram#t#r<&!!W$t0-alu#+:6$!:, t@t)!<T#@t,F
?? S$ !#vu#lv# al7u" valor, # Lu# ;a #@$t#
$"t $ = +$"t,cm!<E@#cut#Scalar+,F
$B+ $ 9 E ,
>
?? &v$amo ; al$mo
t0$<lbl&v$o<T#@t = :El cl$#"t# ;a #@$t#:F
r#tur"F
N
?? &l al$r !#l bloLu# u$"7 # c$#rra la co"#@$A"
N
El c#di1o anterior sirve para comprobar si el cliente )a existe, vers que uso una instrucci#n sing para
controlar la conexi#n, de esa forma, si nos salimos nos ase1uramos de que el objeto se destru)e ) se
cierra la conexi#n, )a que esa instrucci#n se encar1a de liberar todos los recursos que estuviera usando
al lle1ar al final del bloque.
El parmetro /id lo asi1namos usando el m%todo "dd0it1Value que es la forma ms c#moda de
crear los parmetros al tiempo que se le asi1na el valor que tendr.
$l llamar al m%todo E,ecuteScalar del comando, le estamos diciendo que devuelva la primera columna
de la primera fila, ) como resulta que lo que queremos es el n9mero de veces que est% en la tabla
suarios esa cuenta de correo, pues si )a est una vez, devolver un ., si no est devolver un cero.
El valor que devuelve esa funci#n es de tipo 2bject, )a que en realidad el tipo devuelto depende de lo
que pon1amos despu%s de SELECT, en este caso es un valor entero, que es lo que devuelve la funci#n
Count#3%.
Si lo que devuelve es ma)or de cero, es que +a) al19n id como el que se +a escrito, por tanto
mostramos el mensaje de error ) salimos del m%todo.

Si se contin9a, es decir, se lle1a despu%s del 4, es que no existe esa cuenta con id, por tanto debemos
a1re1ar los datos.
C4di5o 7a2a a52e5a2 :n cliente n:e<o!
$+ora debemos +acer casi lo mismo de antes, pero ejecutando el comando Insert, el cual tambi%n lo
tomaremos del objeto S-lDataSource..
$unque antes de 1uardar nada en la base de datos debemos asi1nar los valores de los parmetros, que
si te fijas en el c#di1o de la p1ina, esos parmetros se llaman i1ual que los campos, pero empezando
con la arroba &G(.

Acceso a datos bsico en pginas Web
$+ora veremos como!

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.

Dtilizar el control Sql6ataSource para administrar el acceso a datos ) los enlaces.

3acer que se muestren datos con el control FridEie;.

Confi1urar el control 5ridVie& para permitir la ordenaci#n ) la pa1inaci#n.

Crear una consulta filtrada con la que s#lo se muestren los re1istros seleccionados.
4equisitos previos
Para poder completar este tutorial, necesitar lo si1uiente!

5btener acceso a la base de datos Nort+;ind de S7? Server.

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.

8icrosoft 6ata $ccess Components &86$C( versi#n B.@ o posterior.


Si utiliza 8icrosoft 2indo;s CP o 2indo;s Server BAAI, )a dispone de 86$C B.@. Sin embar1o, si utiliza 8icrosoft
2indo;s BAAA, quiz ten1a que actualizar la versi#n de 86$C que )a est instalada en el equipo. Para descar1ar la
actual versi#n de 86$C, vea el Centro para desarrolladores de acceso a datos ) almacenamiento.
Crear el sitio 2eb
Si )a +a creado un sitio 2eb en Eisual 2eb 6eveloper si1uiendo los pasos descritos en 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 2eb
) una p1ina nuevos si1uiendo estos pasos.
!ara crear un sitio 0eb del 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 de "S!+NET.
J. En el cuadro bicaci6n situado en el extremo derec+o, escriba el nombre de la carpeta en la que desea
conservar las p1inas del sitio 2eb.
Por ejemplo, escriba el nombre de carpeta C780ebSites.
/. En la lista Lenguaje, +a1a clic en el len1uaje de pro1ramaci#n con el que prefiera trabajar.
K. 3a1a clic en "ceptar.
Eisual 2eb 6eveloper crea la carpeta ) una nueva p1ina denominada 6efault.aspx.
$1re1ar un control FridEie; para mostrar datos
Para que se muestren datos en una p1ina 2eb $SP.NET, necesita lo si1uiente!

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.

Dn control en la p1ina para mostrar los datos.


En el procedimiento si1uiente se mostrarn los datos en un control 5ridVie&. El control 5ridVie& obtendr sus
datos del control S-lDataSource.
Puede a1re1ar estos elementos al sitio 2eb por separado. Sin embar1o, para empezar resulta ms fcil visualizar la
presentaci#n de datos con el control 5ridVie& ) despu%s utilizar asistentes para crear la conexi#n ) el control del ori1en
de datos. En el si1uiente procedimiento se explica c#mo crear los tres elementos que necesita para mostrar datos en la
p1ina.
!ara agregar 9 con:igurar un control 5ridVie& -ue per(ita
(ostrar datos
.. En Eisual 2eb 6eveloper, cambie a la vista Dise;o.
B. $rrastre un control 5ridVie& desde el 1rupo Datos del Cuadro de 1erra(ientas +asta la p1ina.
I. Si el men9 contextual Tareas de 5ridVie& no aparece, +a1a clic con el bot#n secundario del mouse &rat#n( en
el control 5ridVie& ) +a1a clic en Mostrar eti-ueta inteligente.
J. En el men9 Tareas de 5ridVie&, en la lista Elegir origen de datos, +a1a clic en <Nue*o origen de datos=.
$parece el cuadro de dilo1o Con:iguraci6n de origen de datos.
/. 3a1a clic en Base de datos.
$s especifica que desea obtener datos de una base de datos que admite instrucciones S7?. Esto inclu)e a S7?
Server ) a otras bases de datos compatibles con 5?E 60.
En el cuadro Especi:icar un id+ para el origen de datos aparece un nombre de control de ori1en de datos
predeterminado &S-lDataSource.(. Puede dejar ese nombre.
K. 3a1a clic en "ceptar.
$parece el asistente para or1enes de datos, que muestra una p1ina en la que puede ele1ir una conexi#n.
@. 3a1a clic en Nue*a cone,i6n.
L. En el cuadro de dilo1o Elegir origen de datos, en 2rigen de datos, +a1a clic en Microso:t S>L Ser*er ), a
continuaci#n, +a1a clic en Continuar.
$parecer el cuadro de dilo1o "gregar cone,i6n.
M. En el cuadro No(bre de ser*idor, escriba el nombre del servidor S7? Server que desea utilizar.
.A. Por lo que respecta a las credenciales de inicio de sesi#n, seleccione la opci#n que resulte apropiada para el
acceso a la base de datos de S7? Server &se1uridad inte1rada o id. ) contraseHa especficos( ), si es necesario,
especifique un nombre de usuario ) una contraseHa.
... 3a1a clic en Seleccionar o escribir no(bre de base de datos ) escriba Nort1&ind.
.B. 3a1a clic en !robar cone,i6n ), cuando ten1a la se1uridad de que funciona, +a1a clic en "ceptar.
$parece el asistente Con:igurar origen de datos ? <No(bre2rigenDatos= ) se rellena la informaci#n de la
conexi#n.
.I. 3a1a clic en Siguiente.
$parece el asistente, que muestra una p1ina que le permite almacenar la cadena de conexi#n en el arc+ivo de
confi1uraci#n. Si se almacena la cadena de conexi#n en el arc+ivo de confi1uraci#n, se tienen dos ventajas!
a. Es ms se1uro que el almacenamiento de la cadena de conexi#n en la p1ina.
b. Puede reutilizar la misma cadena de conexi#n en varias p1inas.
.J. $se19rese de que est activada la casilla de verificaci#n S@A guardar esta cone,i6n co(o ) +a1a clic en
Siguiente. &Puede dejar el nombre predeterminado de la cadena de conexi#n, Nort1&indConnectionString(.
$parece el asistente, que muestra una p1ina en la que puede especificar los datos que desea obtener de la base
de datos.
./. En Especi:icar colu(nas de una tabla o *ista, en el cuadro No(bre, +a1a clic en Custo(ers.
.K. 0ajo Colu(nas, active las casillas de verificaci#n Custo(erID, Co(pan9Na(e ) Cit9.
$parece el asistente, que en un cuadro situado en la parte inferior de la p1ina muestra la instrucci#n S7? que se
est creando.
Nota
l asistente le per>ite especiIcar criterios de seleccin Juna clFusula )-RK C otras opciones de la consulta %2,. Para
esta parte del tutorial crearF una instruccin si>ple sin opciones de seleccin ni ordenacin.
.@. 3a1a clic en Siguiente.
.L. 3a1a clic en Consulta de prueba para ase1urarse de que se obtienen los datos que desea.
.M. 3a1a clic en 'inali$ar.
El asistente se cierra ) vuelve a mostrarse la p1ina. $l ejecutar el asistente, se +an realizado dos tareas!
o El asistente +a creado ) confi1urado un control S-lDataSource &con el nombre &S-lDataSource.(,
que incorpora la informaci#n de conexi#n ) consulta que especific#.
o El asistente +a enlazado el control 5ridVie& al objeto S-lDataSource. Por consi1uiente, el control
5ridVie& mostrar datos devueltos por el control S-lDataSource.
Si ve las propiedades para el control S-lDataSource, podr observar que el asistente +a creado los valores para
las propiedades ConnectionStrin1 ) Select7uer).
Nota
Puede ca>biar con facilidad la apariencia del control G2idVie9. n la ?ista Di6eFo, Eaga clic con el botn secundario del
>ouse JratnK en el control G2idVie9 C, a continuacin, seleccione Mo6t2a2 etiG:eta inteli5ente. n el >enD Ta2ea6
de G2idVie9, Eaga clic en Fo23ato a:to3Htico C, a continuacin, apliBue un esBue>a.
Probar la p1ina
$+ora puede ejecutar la p1ina.
!ara probar la pgina
.. Presione CT4?N:/ para ejecutar la p1ina.
?a p1ina aparece en el explorador. El control 5ridVie& muestra todas las filas de datos de la tabla Customers.
B. Cierre el explorador.
$1re1ar ordenaci#n ) pa1inaci#n
Puede a1re1ar posibilidades de ordenaci#n ) pa1inaci#n al control 5ridVie& sin escribir c#di1o.
!ara agregar ordenaci6n 9 paginaci6n
.. En la vista Dise;o, +a1a clic con el bot#n secundario del mouse &rat#n( en el control 5ridVie& ), a continuaci#n,
seleccione Mostrar eti-ueta inteligente.
B. En el men9 contextual Tareas de 5ridVie&, active la casilla de verificaci#n Babilitar ordenaci6n.
?os encabezados de columna del control 5ridVie& cambian a vnculos.
I. En el men9 contextual Tareas de 5ridVie&, active la casilla de verificaci#n Babilitar paginaci6n.
Se a1re1a un pie de p1ina al control 5ridVie& con vnculos de n9mero de p1ina.
J. Tambi%n puede utilizar !ropiedades para cambiar el valor de la propiedad !ageSi$e de .A a un tamaHo de
p1ina menor.
/. Presione CT4?N:/ para ejecutar la p1ina.
Podr +acer clic en un encabezado de columna para ordenar los datos por el contenido de esa columna. Si en el
ori1en de datos +a) ms re1istros de los que permite el tamaHo de p1ina del control 5ridVie&, podr utilizar los
vnculos de exploraci#n de p1inas situados en la parte superior del control 5ridVie& para desplazarse entre las
p1inas.
K. Cierre el explorador.
$1re1ar filtrado
$ menudo desear que en la p1ina s#lo se muestren datos seleccionados. En esta parte del tutorial modificar la
consulta para el control S-lDataSource de manera que los usuarios puedan seleccionar re1istros de clientes de una
ciudad determinada.
En primer lu1ar, utilizar un control Text0ox para crear un cuadro de texto en el que los usuarios puedan escribir el
nombre de una ciudad. $ continuaci#n, cambiar la consulta para incluir un filtro parametrizado &clusula 23E4E(. Como
parte de ese proceso, crear un elemento de parmetro para el control S-lDataSource. El elemento de parmetro
establece c#mo obtendr el control S-lDataSource el valor para su consulta parametrizadaO concretamente, del cuadro
de texto.
Cuando finalice esta parte del tutorial, la p1ina podra tener una apariencia similar a la si1uiente en la vista Dise;o.
!ara agregar el cuadro de te,to -ue per(ite especi:icar una
ciudad
.. 6esde el 1rupo Estndar del Cuadro de 1erra(ientas, arrastre a la p1ina un control Te,tBo, ) un control
0utton.
El control Button s#lo se utiliza para devolver la p1ina al servidor. En este caso no tendr que escribir c#di1o.
B. En Propiedades, para el control Te,tBo,, establezca ID como te,tCit9.
I. Si lo desea, escriba Ciudad o un texto similar delante del cuadro de texto, como ttulo.
J. En !ropiedades para el control Button, establezca Te,t como En*iar.
$+ora puede modificar la consulta para que inclu)a un filtro.
!ara (odi:icar la consulta con un :iltro para(etri$ado
.. 3a1a clic con el bot#n secundario del mouse &rat#n( en el control S-lDataSource ), a continuaci#n, seleccione
Mostrar eti-ueta inteligente.
B. En el men9 Tareas de S-lDataSource, +a1a clic en Con:igurar origen de datos.
$parecer el asistente Con:igurar origen de datos ? <Datasourcename=.
I. 3a1a clic en Siguiente.
El asistente muestra el comando S7? confi1urado actualmente para el control S-lDataSource.
J. 3a1a clic en 0BERE.
$parecer la p1ina "gregar clusula 0BERE.
/. En la lista Colu(na, +a1a clic en Ciudad.
K. En la lista 2perador, +a1a clic en C.
@. En la lista 2rigen, +a1a clic en Control.
L. En !ropiedades del par(etro, en la lista Id+ de control, +a1a clic en te,tCit9.
En los cinco pasos anteriores se especifica que con la consulta se obtendr el valor de b9squeda de Ciudad del
control Te,tBo, que a1re1# en el procedimiento anterior.
M. 3a1a clic en "gregar.
?a clusula 23E4E que +a creado aparece en un cuadro en la parte inferior de la p1ina.
.A. 3a1a clic en "ceptar para cerrar la p1ina "gregar clusula 0BERE.
... En el asistente Con:igurar origen de datos ? <DataSourceName=, +a1a clic en Siguiente.
.B. En la p1ina Consulta de prueba, +a1a clic en Consulta de prueba.
$parece el asistente, con la p1ina Editor de *alores del par(etro, en la que se solicita un valor para utilizarlo
en la clusula 23E4E.
.I. En el cuadro Valor, escriba Londres ), a continuaci#n, +a1a clic en "ceptar.
$parecen los re1istros de los clientes de ?ondres.
.J. 3a1a clic en 'inali$ar para cerrar el asistente.
$+ora puede probar el filtrado.
!ara probar el :iltrado
.. Presione CT4?N:/ para ejecutar la p1ina.
B. En el cuadro de texto, escriba Londres ), a continuaci#n, +a1a clic en En*iar.
$parece una lista de clientes de la ciudad de ?ondres en el control 5ridVie&.
I. Pruebe con otras ciudades, como Buenos "ires ) Berl@n.
Pasos si1uientes
El acceso a datos constitu)e un aspecto importante en muc+as aplicaciones 2eb, ) en este tutorial s#lo se da una li1era
idea de lo que se puede +acer con los datos en las p1inas 2eb. 7uizs desee probar otras caractersticas relacionadas
con el acceso a datos. Por ejemplo, puede +acer lo si1uiente!

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.

Editar e insertar re1istros.


Para obtener informaci#n detallada, vea Tutorial! Editar e insertar datos en p1inas 2eb con el control de servidor
2eb 6etailsEie;.

Trabajar con re1istros que tienen una relaci#n de principalPdetalle.


Para obtener informaci#n detallada, vea Tutorial! Crear p1inas 2eb principalPdetalle en Eisual Studio.

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!

Confi1urar los permisos para los arc+ivos .mdb.

Establecer conexi#n con la base de datos que tiene un control $ccess6ataSource.

8ostrar los datos de $ccess.


?as bases de datos de $ccess no tienen la misma capacidad ni el mismo potencial de ampliaci#n que otros tipos de bases
de datos, como 8icrosoft S7? Server. En 1eneral, si se crea un sitio 2eb que va a tener un trfico li1ero o un n9mero
limitado de usuarios, una base de datos de $ccess ser suficiente. Sin embar1o, si se espera que el sitio 2eb ten1a un
rendimiento ma)or o un alto n9mero de usuarios, se debe considerar la posibilidad de usar S7? Server u otra base de
datos adecuada para los sitios 2eb de producci#n.
4equisitos previos
Para poder completar este tutorial, necesitar 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.

8icrosoft 6ata $ccess Components &86$C( versi#n B.@ o posterior.


Si utiliza 8icrosoft 2indo;s CP o 2indo;s Server BAAI, )a dispone de 86$C B.@. Sin embar1o, si utiliza 8icrosoft
2indo;s BAAA, quizs ten1a que actualizar la versi#n de 86$C que )a est instalada en el equipo. Para descar1ar la
actual versi#n de 86$C, vea el Centro para desarrolladores de acceso a datos ) almacenamientoCentro para
desarrolladores de acceso a datos ) almacenamiento.

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 &para 2indo;s BAAA ) 2indo;s CP( o en el contexto de la cuenta NET254Q SE4E*CE &para
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

Presione CT4?N:/ para ejecutar la p1ina.


El control 5ridVie& muestra todas las filas de datos de la tabla Cate1oras.
Pasos si1uientes
Este tutorial describe los pasos bsicos necesarios para trabajar con datos de $ccess en una p1ina 2eb de $SP.NET. El
modelo de enlace de datos de $SP.NET permite trabajar con datos de diferentes or1enes de la misma manera. Por
ejemplo, puede +acer lo si1uiente!

Dsar controles para filtrar los datos que muestra la p1ina.


Para obtener informaci#n detallada, vea Tutorial! $cceso a datos bsico en p1inas 2eb.

$ctualizar, insertar o eliminar datos en una base de datos de $ccess.


Para obtener informaci#n detallada, vea Tutorial! Editar e insertar datos en p1inas 2eb con el control de servidor
2eb 6etailsEie;.

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

También podría gustarte