Intiouuccion a AB0.NET AuC .nL1 es un con[unLo de lnLerfaces, clases, esLrucLuras y enumeraclones que permlLen el acceso a daLos desde la plaLaforma .nL1 de Mlcroso. Ls una evolucln lglca de la Al Lradlclonal de Mlcroso conoclda como AuC (Acuvex uaLa Cb[ecL).
AuC .nL1 permlLe un modo de acceso desconecLado a los daLos, los cuales pueden provenlr de muluples fuenLes de daLos, con dlferenLes arqulLecLuras de almacenamlenLo.
AuC .nL1 soporLa un modelo compleLo de programacln y adapLacln basado en el esLndar xML. Namespaces ue AB0 .NET !"#$%&'()$): Clases generlcas de AuC .nL1. lnLegra la gran mayorla de clases que hablllLan el acceso a los daLos de la arqulLecLura .nL1. !"#$%&'()$)'!*+,+-%.$: Clases del proveedor de daLos de SCL Server en su versln 7.0 y superlor. !"#$%&'()$)'/+%(0: Clases del proveedor de daLos de Cleu8. ermlLe el acceso a proveedores .nL1 que Lraba[an dlrecLamenLe conLra conLroladores basados en Acuvex de Mlcroso. !"#$%&'()$)'!*+1"2%#: uenlcln de los upos de daLos de SCL Server. roporclona la encapsulacln en clases de Lodos los upos de daLos nauvos de SCL Server y sus funclones de mane[o de errores, a[usLe y conversln de upos. !"#$%&'()$)',3&&3.: Clases base, reuullzables de AuC .nL1. roporclona la coleccln de clases necesarlas para acceder a una fuenLe de daLos. !"#$%&'()$)'4.$%5.)+: lnLegra el con[unLo de clases lnLernas de las que se componen los proveedores de daLos. Clases ue !"#$%&'()$) uenLro del espaclo de nombres !"#$%&'()$) enconLramos las slgulenLes clases comparudas que consuLuyen el e[e cenLral de AuC .nL1:
()$)!%$: Almacen de daLos por excelencla de AuC .nL1. 8epresenLa una base de daLos desconecLada del proveedor de daLos. Almacena Lablas y sus relaclones. ()$)1)0+%: un conLenedor de daLos. LsLrucLurado como un con[unLo de las (()$)*+,) y columnas (()$)-+./&0). ()$)637: 8eglsLro que almacena n valores. 8epresenLacln en AuC. nL1 de una la/Lupla de una Labla de la base de daLos. ()$),3+8&.: Conuene la denlcln de una columna. MeLadaLos y daLos asoclados a su domlnlo. ()$)6%+)93.: Lnlace enLre dos o ms columnas lguales de dos o ms Lablas. ,3.#$5)-.$: 8eglas de valldacln de las columnas de una Labla. ()$),3+8&.:)22-.;: vlnculo lglco exlsLenLe enLre una columna de un ob[eLo del ()$)!%$ y la columna nslca de la Labla de la base de daLos. ()$)1)0+%:)22-.;: vlnculo lglco exlsLenLe enLre una Labla del ()$)!%$ y la Labla nslca de la base de daLos.
Adems de esLas clases, exlsLe oLro grupo de clases especlcas de un proveedor de daLos. 1lenen una slnLaxls con el formaLo xxxClase, donde xxx" es un pre[o que deLermlna el upo de plaLaforma de conexln a daLos, como ser !"#$%&'()$)'!1.-.2%0$ y !"#$%&'()$)'3.%(4. Las Clases +,--%.$/,- Ll prlmer paso obllgado en un acceso a daLos conslsLe en esLablecer una conexln con un almacen de daLos. LsLo se conslgue a Lraves de las clases -+00%56+0 de AuC .nL1, las cuales permlLen la conexln a un orlgen de daLos (ya sea una base de daLos o no). Ll ob[eLo -+00%56+0 uene dos verslones:
!"#$%&'()$)'!1.-.2%0$'!1.-+00%56+0: ara un proveedor de daLos de SCL Server.
!"#$%&'()$)'3.%(4'3.%(4-+00%56+0: ara un proveedor de daLos CLLu8. Ln un ob[eLo de upo -+00%56+0 se uullzan los meLodos 37%089 y -.+#%89 para abrlr y cerrar conexlones respecuvamenLe, con el almacen de daLos adecuado. Cuando e[ecuLamos el meLodo 37%089 sobre un ob[eLo -+00%56+0, se abrlr la conexln que se ha lndlcado en su propledad -+00%56+0!$:20;, es declr, esLa propledad lndlcar la cadena de conexln que se va a uullzar para esLablecer la conexln con el almacen de daLos correspondlenLe.
Ll consLrucLor de las clases -+00%56+0 se encuenLra sobrecargado, en una de sus verslones reclbe como parmeLro una cadena de LexLo, la cual ser la cadena de conexln que se aslgnar a la propledad -+00%56+0!$:20;. Ejemplo Las Clases +,&&)-0 Cuando ya hemos esLablecldo una conexln con un almacen de daLos, la slgulenLe operacln lglca conslsLe en envlarle senLenclas para reallzar los dlsunLos upos de operaclones que normalmenLe hacemos con los daLos. ara ello uullzaremos las clases !1.-+&&)0< y 3.%(4-+&&)0<.
Ll ob[eLo -+&&)0< nos permlLe e[ecuLar senLenclas SCL sobre la fuenLe de daLos a la que esLamos conecLados.
un ob[eLo -+&&)0< debe ser creado a parur de una conexln ya exlsLenLe, y debe Lener una senLencla SCL denlda. Piopieuaues ue +,&&)-0 ,3&&).<1%=$: Conuene una cadena de LexLo que lndlca la senLencla SCL que se va e[ecuLar sobre el orlgen de daLos. ,3&&).<1-&%38$: 1lempo de espera en segundos que se va a apllcar a la e[ecucln de un ob[eLo Command. Su valor por defecLo es 30 segundos. ,3&&).<1"2%: lndlca el upo de comando que se va a e[ecuLar en el almacen de daLos (SLoredrocedure, 1ableulrecL o 1exL). ,3..%>93.: uevuel ve el ob[ eLo Sql Connecuon u CleubConnecuon uullzado para e[ecuLar el ob[eLo Command correspondlenLe. ?)5)&%$%5#: Coleccln de parmeLros que se pueden uullzar para e[ecuLar el ob[eLo Command. Ntouos ue +,&&)-0 ,5%)$%?)5)&%$%5: Crea un parmeLro para el que despues podemos denlr una serle de caracLerlsucas especlcas (upo de daLo, valor, Lamano, eLc.) uevuelve un ob[eLo de upo !1.=):)&%$%: u 3.%(4=):)&%$%:. @=%>8$%A3.B8%5": L[ecuLa la senLencla SCL denlda en la propledad -+&&)0<>%?$ en la conexln denlda en la propledad -+00%56+0. La senLencla a e[ecuLar debe ser de un upo que no devuelva un con[unLo de reglsLros, por e[emplo, @7<)$%, (%.%$% o A0#%:$. uevuelve la canudad de las afecLadas.
@=%>8$%6%)<%5: L[ecuLa la senLencla SCL denlda en la propledad -+&&)0<>%?$ en la conexln denlda en la propledad -+00%56+0. Ln esLe caso, la senLencla sl devuelve un con[unLo de reglsLros. Ll resulLado es un ob[eLo de upo !1.()$)*%)<%: u 3.%(4()$)*%)<%:. @=%>8$%!>)+)5: Se uullza cuando deseamos obLener la prlmera columna de la prlmera la del con[unLo de reglsLros, el resLo de daLos no se Loman en cuenLa. uevuelve un ob[eLo de upo 34B%5$. ?5%2)5%: LsLe meLodo consLruye una versln compllada del ob[eLo -+&&)0< denLro del almacen de daLos. Ejemplo Las Clases ()$)1%)0%2 un ob[eLo ()$)*%)<%: permlLe la navegacln hacla delanLe de los reglsLros devuelLos por una consulLa. Las clases que l mpl emenLan el ()$)*%)<%: son !1. ()$)*%)<%: y 3.%(4()$)*%)<%:.
ara obLener un ob[eLo ()$)*%)<%: debemos e[ecuLar el meLodo C?%5/$%*%)<%:89 de un ob[eLo -+&&)0< basado en una consulLa SCL.
Piopieuaues ue ()$)1%)0%2 Las prlnclpales propledades de un ob[eLo ()$)*%)<%: son las slgulenLes:
C-%+<,38.$: uevuelve la canudad de columnas (campos) presenLes en la la (reglsLro) acLual.
4#,+3#%<: uevuelve 1rue o lalse lndlcando sl un uaLa8eader esL cerrado o no.
4$%&: uevuelve en formaLo nauvo, el valor de la columna cuyo nombre le lndlcamos como lndlce en forma de cadena de LexLo. Ntouos ue ()$)1%)0%2 ,+3#%DE: Clerra el ob[eLo ()$)*%)<%:. F%$GGGDE: Son meLodos que nos permlLen obLener los valores de las columnas conLenldas en el ()$)*%)<%:. Las xxx represenLan el upo de daLo. or e[emplo: D%$E++.%)089, D%$A0$FG89, D%$!$:20;89, D%$-H):89, eLc. Como parmeLro debemos envlarle el numero de columna que queremos recuperar (comenzando desde cero). A%=$6%#8+$DE: uesplaza el punLero acLual al slgulenLe con[unLo de reglsLros (en caso de que se devuelva ms de un con[unLo de reglsLros) 6%)<DE: uesplaza el cursor acLual al slgulenLe reglsLro permluendo obLener los valores del mlsmo por medlo del ()$)*%)<%:. uevuelve 1rue sl exlsLen ms reglsLros denLro del ()$):*%)<%: y lalse sl hemos llegado al nal del con[unLo de reglsLros. AnLes de comenzar a usar un ()$)*%)<%: debemos llamar al meLodo *%)< para poslclonarnos en el prlmer reglsLro. Ejemplo Ejeicicio Ejeicicio Ejeicicio La Clase ()$)!%$ La clase ()$)!%$ es una clase comun de AuC .nL1, lo que slgnlca que se uullza para cualquler upo de proveedor de daLos y no exlsLen verslones paruculares !1.-.2%0$ u 3.%(4.
un ob[eLo de upo ()$)!%$ represenLa la arqulLecLura de la base de daLos compleLa, basada en un esquema xML, por lo que no depende de un fabrlcanLe especlco. un ()$)!%$ almacena los daLos en una memorla cache desconecLada. Se dlce que un ()$)!%$ es almacenamlenLo paslvo, es declr, no se ve afecLado por los camblos subyacenLes en la base de daLos.
Cada Labla de la base de daLos esL represenLada denLro del ()$)!%$ en la propledad >)4.%# que es de upo ()$)>)4.%. un ()$)>)4.% esL compuesLo por ()$)*+,# (las) y esLos a su vez esLn compuesLos por ()$)-+./&0# (columnas). ara poder lnlclallzar las Lablas de un ()$)!%$ debemos hacer uso de un ob[eLo de upo ()$)I<)7$%:, el cual puede ser de dos upos: !1.()$)I<)7$%: u 3.%(4()$)I<)7$%:. Ll ob[eLo ()$)I<)7$%: se consLruye envlndole como parmeLro una cadena que represenLa la consulLa que se va a e[ecuLar, y que va a rellenar de daLos el ()$)!%$.
uel ob[eLo ()$)I<)7$%: uullzaremos el meLodo J2..89, el cual reclbe como parmeLros el ()$)!%$ que se qulere rellenar de lnformacln y un nombre para la Labla que se crear denLro del ()$)!%$. Piopieuaues ue ()$)!%$ ,)#%!%.#-9H%: lndlca sl las comparaclones de LexLo denLro de las Lablas dlsunguen enLre mayusculas y mlnusculas. or defecLo uene valor falso. ()$)!%$A)&%: LsLablece o devuelve el nombre del ()$)!%$. I)#@5535#: uevuelve un valor lglco para lndlcar sl exlsLen errores denLro de las Lablas de un ()$)!%$. 6%+)93.#: uevuelve una coleccln de ob[eLos de upo ()$)*%.)6+0 que represenLan las relaclones exlsLenLes enLre las Lablas del ()$)!%$. 1)0+%#: uevuelve una coleccln de ob[eLos de upo ()$)>)4.% que represenLan las Lablas del ()$)!%$. Ntouos ue ()$)!%$ ,+%)5DE: Lllmlna Lodos los daLos almacenados en el ob[eLo ()$)!%$, vaclando Lodas las Lablas conLenldas en el mlsmo. J>>%2$,K).;%#DE: Conrma Lodos los camblos reallzados en las Lablas y relaclones conLenldas en el ob[eLo ()$)!%$, o blen los ulumos camblos que se han producldo desde la uluma llamada a I55%7$-H)0;%#. F%$,K).;%#DE: uevuelve un ob[eLo ()$)!%$ que conuene Lodos los camblos reallzados desde que se carg el ()$)!%$ o desde la uluma llamada a I55%7$-H)0;%#. I)#,K).;%#DE: uevuelve verdadero o falso para lndlcar sl se han reallzado camblos al conLenldo del ()$)!%$ desde que fue cargado o desde la uluma llamada a I55%7$-H)0;%#. 6%L%>$,K).;%#DE: Abandona Lodos los camblos reallzados en las Lablas del ()$)!%$ desde que fue cargado o desde la uluma llamada a I55%7$-H)0;%#. :%5;%DE: 1oma el conLenldo de un ()$)!%$ y los mezcla con los de oLro ()$)!%$. Las Clases ()$)30)4$%2 Las clases ()$)I<)7$%: (!1.()$)I<)7$%: y 3.%(4()$)I<)7$%:) slrven como puenLe enLre el orlgen de daLos y el ()$)!%$, ya que permlLen cargar el ()$)!%$ con lnformacln de la fuenLe de daLos, y posLerlormenLe, acLuallzar el orlgen de daLos con la lnformacln del ()$)!%$.
La clase ()$)I<)7$%: uene cuaLro propledades de upo -+&&)0<: 4.#%5$,3&&).<: Se uullza para lnsercln de daLos. !%+%>$,3&&).<: Se uullza para e[ecuLar senLenclas #%.%5$. M2<)$%,3&&).<: Se uullza para reallzar modlcacln de daLos. (%+%$%,3&&).<: Se uullza para reallzar ellmlnacln de daLos. El Ntouo 5/66 un meLodo desLacabl e de l as cl ases ()$)I<)7$%: (!1.()$)I<)7$%: y 3.%(4()$)I<)7$%:) es el meLodo J2..89, el cual e[ecuLa el comando de seleccln asoclado a la propledad !%.%5$-+&&)0<. Ll resulLado de esLa consulLa se carga en el ob[eLo ()$)!%$ que le pasamos como parmeLro. ()$) 7/-0/-8: Enlace ue Batos a Contioles ()$) E20<20; es el mecanlsmo proporclonado por la plaLaforma .nL1 para enlazar ob[eLos conLenedores de daLos con los conLroles de un formularlo, para poder reallzar operaclones auLomucas de navegacln y edlcln.
LxlsLen dos upos de ()$) E20<20;: Lnlace slmple (!2&7.% ()$) E20<20;): LsLe upo de enlace conslsLe en una asoclacln enLre un conLrol que puede mosLrar un unlco daLo y el ob[eLo conLenedor de daLos (e[emplo: >%?$E+?). Lnlace comple[o (-+&7.%? ()$) E20<20;): Ln esLe enlace, el conLrol que acLua como lnLerfaz o vlsuallzador de daLos, dlspone de la capacldad de mosLrar Lodos los daLos del ob[eLo conLenedor (e[emplo: ()$)D:2<). Elementos uel pioceso ()$) 7/-0/-8 N-.<-.;: Clase que permlLe crear un enlace (420<20;) para un conLrol, lndlcando la propledad del conLrol que mosLrar los daLos, el ()$)!%$ del que se exLraer la lnformacln, y el nombre de la Labla - columna, cuyos daLos pasarn a la propledad del conLrol. ()$)N-.<-.;#: Coleccln de que dlsponen los conLroles, con la lnformacln de enlaces a daLos. Craclas a su meLodo I<<89 podemos anadlr un ob[eLo E20<20; para que el conLrol muesLre los daLos que lndlca el enlace. N-.<-.;,3.$%=$: ropledad de la clase J+:&, que represenLa el conLexLo de enlace a daLos esLablecldo en los conLroles del formularlo, es declr, Loda la lnformacln de enlaces esLableclda enLre los conLroles y ob[eLos proveedores de daLos. uevuelve un ob[eLo de upo E20<20;L)0);%:E)#%. N-.<-.;:).);%5N)#%: Cb[eLo que se encarga de admlnlsLrar un con[unLo de ob[eLos de enlace, por e[emplo, los de un formularlo, obLenldos a Lraves del E20<20;-+0$%?$ del formularlo.