Sei sulla pagina 1di 9

ADO.NET para el programador de ADO Resumen: en este artculo se analiza la forma en la que ADO.

NET realiza las operaciones bsicas de bases de datos y cundo se debe utilizar ADO.NET en lugar de ADO. (10 pginas impresas.)

Contenido

Acceso a datos despus de .NET Lectura de datos DataSet, DataTable y Recordset Traduccin del cdigo existente Actualizacin de datos Compatibilidad ampliada para XML Resumen ADO.NET es lo ms reciente en una extensa lnea de tecnologas de acceso a bases de datos que comenz hace varios aos con la interfaz de programacin de aplicaciones (API) de la conectividad abierta de base de datos (Open Database Connectivity, ODBC). Transcurrido este tiempo, han sucedido varias cosas interesantes. Por ejemplo, COM comenz a trabajar en el terreno de las bases de datos, lo que culmin con OLE DB. Posteriormente, ActiveX Data Objects (ADO) (ms o menos, una versin automatizada de OLE DB) se ha elegido para regir la comunidad Visual Basic y ASP de los desarrolladores de base de datos basados en Windows. Con .NET, Microsoft ofrece un marco de trabajo general (biblioteca de clase de marco de trabajo) que se ampliar para cubrir todas las API de Windows existentes, entre otras muchas cosas. En concreto, incluir varias bibliotecas de uso frecuente que, en la actualidad, se encuentran disponibles a travs de objetos COM independientes. Entre ellas, se encuentran los modelos de objetos XML y ADO que se han integrado en un subrbol de clases denominado ADO.NET. ADO.NET representa el sustrato que compondr la base de las aplicaciones .NET compatibles con datos. A diferencia de ADO, ADO.NET se ha diseado siguiendo especficamente unas directrices ms generales y menos orientadas a la base de datos. ADO.NET rene todas las clases que permiten el manejo de datos. Estas clases representan los objetos que contienen datos y que muestran las capacidades normales de las bases de datos: ndices, ordenacin, vistas. Aunque ADO.NET es la solucin definitiva para las aplicaciones de base de datos de .NET, destaca por un diseo global que no se centra tanto en las bases de datos como el modelo ADO. ADO.NET es una solucin bastante distinta de ADO. Se trata de un nuevo modelo de programacin para el acceso a datos que necesita un compromiso y un entendimiento completos, as como un acercamiento distinto. No obstante, una vez haya comenzado a utilizar ADO.NET, observar que cualquier tarea de ADO resulta de extrema ayuda para generar aplicaciones eficaces y para resolver antiguos problemas de una forma distinta, aunque de manera ms elegante y consistente. En el resto de este artculo, nos centraremos en la forma en la que ADO.NET realiza las operaciones de base de datos bsicas. Se indicar cundo resulta ms aconsejable utilizar ADO.NET o ADO. ADO.NET no es una adaptacin de ADO que se ajuste a la infraestructura .NET. Esto es obvio si se observa ADO.NET en cuanto a sintaxis, diseo de cdigo y migracin. Acceso a datos despus de .NET El acceso a los orgenes de datos en ADO.NET se rige a travs de proveedores administrados. Respecto a las funciones, un proveedor administrado es muy parecido a un proveedor OLE DB, aunque con dos diferencias importantes. Primero, funcionan en el entorno .NET y recuperan y exponen datos a travs de clases .NET, como DataReader y DataTable. Segundo, la arquitectura resulta ms sencilla, puesto que se ha optimizado para .NET. En la actualidad, ADO.NET incorpora dos tipos de proveedores administrados: uno para SQL Server 7.0 y posterior y otro para todos los dems proveedores OLE DB que pueda tener instalados. Las clases que se utilizan en ambas

situaciones son distintas, aunque siguen una convencin de nomenclatura parecida. Los nombres son iguales, excepto por los prefijos. El prefijo es SQL en el primer caso y ADO en el segundo. Se deben utilizar clases SQL para obtener acceso a las tablas de SQL Server, ya que se dirigen directamente a la API interna del servidor de base de datos, omitiendo el nivel intermedio representado por el proveedor OLE DB. Las clases de ADO constituyen una interfaz .NET adems de los proveedores OLE DB y utilizan el puente COM Interop para realizar esta tarea. Para obtener ms informacin sobre los objetos ADO.NET, consulte el artculo de Omri Gazitt, Introducing ADO+: Data Access Services for the Microsoft .NET Framework (en ingls) y el de Dino Esposito ADO+ gua la evolucin de los tipos de datos. El primero resulta ms tcnico y proporciona una visin general y de alto nivel sobre el modelo de programacin ADO.NET. El ltimo est dirigido a explicar la finalidad de ADO.NET y la forma en la que se relaciona con XML, secuencias de comando y otras tecnologas.

Lectura de datos
Una aplicacin ADO.NET que necesita leer algunos datos de un origen externo debe comenzar la creacin de un objeto de conexin. Puede ser SQLConnection o ADOConnection, segn el proveedor de destino. Recuerde que, aunque no es aconsejable, puede utilizar las clases de ADO.NET para conectarse con una base de datos SQL Server. El nico inconveniente radica en que el cdigo se transmite a travs una capa adicional de cdigo innecesaria. Solicita el proveedor administrado de ADO, que a su vez llama al proveedor OLE DB de SQL Server. El proveedor administrado de SQL Server, por el contrario, se dirige directamente a los datos tal y como hara un proveedor OLE DB. Una diferencia significativa entre los objetos de conexin ADO y ADO.NET radica en el hecho de que la conexin ADO.NET no admite la propiedad CursorLocation. Observe que no se trata de un error de la documentacin, sino de un asunto de diseo muy discutible. Para reforzar su visin centrada en los datos, ADO.NET no incluye la implementacin explcita de cursores. En ADO, se utilizaban cursores para extraer registros de la base de datos, as como otro origen de datos compatible con OLE DB. Se puede elegir entre cursores cliente o servidor y, dependiendo de esta seleccin, varios tipos de cursores predefinidos. ADO.NET tiende a la abstraccin del origen de datos y proporciona una interfaz de programacin nueva para la lectura y el anlisis de los datos. En ADO, cree un objeto Recordset mediante la especificacin de una conexin y un texto de comando. El Recordset contiene ciertas reglas para la ubicacin y el tipo de cursor. Para leer datos, puede hacer lo siguiente:

Cree una copia esttica en memoria de los registros seleccionados y procselos mientras se encuentra

desconectado del origen de datos. ADO lo denomina cursor esttico. Desplcese por los datos utilizando un cursor rpido, de slo lectura, que slo se desplaza hacia adelante y

que funciona sobre una instantnea esttica de los registros. ADO lo denomina cursor de slo lectura. Obtenga acceso a los datos a travs de dos tipos de cursores de servidor, que necesitan una conexin

destacada pero que permiten detectar, en distintos niveles, los cambios entrantes que realizan otros usuarios conectados. ADO los denomina cursores keyset y dinmicos. Las dos primeras opciones son parecidas en el hecho de que funcionan con recordsets desconectados y leen la informacin desde la memoria cach de un cliente. Adems, estas dos opciones representan las utilizadas con mayor frecuencia en los contextos Web y para nuevos sistemas de n niveles. En ADO, todas las opciones anteriores se asignan a un tipo de cursor distinto. Como ver ms adelante en este captulo, ADO.NET resulta bastante distinto, aunque no perder las capacidades de las que disfrutaba con ADO. Por el contrario, el cdigo se abstraer del origen de datos real, as como el formato y el medio de almacenamiento fsico. ADO.NET ofrece dos objetos para manipular los datos extrados de un origen de datos. Se trata de los objetos DataSet y DataReader. El primero es una memoria cach de los registros que se pueden visitar en cualquier direccin y modificar como se desee. El segundo es un objeto optimizado para desplazarse por registros de slo lectura y slo

hacia adelante. Observe que el aspecto de DataSet es similar a un cursor esttico, mientras que el objeto DataReader es el equivalente en .NET al cursor de slo lectura de ADO. En ADO.NET, no se admiten cursores de servidor. No obstante, esto no quiere decir que no se puedan utilizar. Tan slo tiene que importar la biblioteca de tipo ADO en .NET. Para ello, simplemente haga clic con el botn secundario en el nodo de referencias en la ventana del proyecto. Una vez realizada esta operacin, puede empezar a utilizar los objetos nativos de ADO en las aplicaciones. Aunque personalmente recomiendo que habra que volver a programar las aplicaciones existentes con .NET, la decisin de cambiar a .NET no resulta fcil de tomar. Una importacin completa de ADO puede constituir el primer paso prctico con .NET sin tener que emplear demasiado tiempo o recursos. Sin embargo, recuerde que se trata del primer paso de un camino ms largo. Bajo ningn concepto se trata del nico paso hacia .NET. El valor real aadido de .NET proviene de una interfaz de programacin uniforme y consistente y del amplio uso de las clases nativas. Aunque no es recomendable, se admite la importacin de bibliotecas del tipo COM, ya que nicamente supone una solucin a corto plazo o un paso intermedio. Tenga en cuenta que ADO.NET unifica la interfaz de programacin para las clases contenedoras de datos. Independientemente del tipo de aplicacin que desee desarrollar (para formularios de Windows, Web o Servicios Web), maneje los datos a travs del mismo juego de clases. Tanto si el origen de datos en el servidor es una base de datos SQL Server, un proveedor OLE DB, un archivo XML o una matriz, desplcese por el contenido y contrlelo a travs de los mismos mtodos y propiedades.

Figura 1. Men de Solution Explorer Si desea utilizar ADO en .NET, tendr que enfrentarse a algunos efectos secundarios, como el cdigo adicional que necesitar para utilizar los recordsets a partir de controles enlazados a datos.

DataSet, DataTable y Recordset


ADO.NET no incluye un equivalente directo para el objeto Recordset. DataTable representa el objeto ms cercano. Aunque contienen un conjunto de funciones casi idntico, juegan un papel distinto en sus respectivos marcos de trabajo. Recordset es un objeto de gran tamao que incluye buena parte de las capacidades ADO, aunque todava tiene carencias en algunas reas. Resulta positivo en muchos aspectos: se puede crear, funciona desconectado y contiene muchas caractersticas. Sin embargo, se podra mejorar en algunas reas. Por ejemplo, resulta difcil de serializar en una red, debido a su naturaleza COM, es un objeto binario difcil de compartir entre mdulos que funcionan en distintas plataformas y no puede penetrar servidores de seguridad. Adems, representa una nica tabla de registros. Si esta tabla se origina como resultado de una o varias instrucciones JOIN, puede resultar difcil actualizar los orgenes de

datos originales. Al intentar reconciliar el recordset desconectado con el origen de datos original, funciona siempre que el origen comprenda SQL. No obstante, puede ocurrir fcilmente que un proveedor que no es SQL haya creado el recordset. En ADO.NET, toda la funcionalidad del Recordset de ADO se ha dividido en objetos ms simples: uno de ellos es DataReader. El objeto DataReader imita el comportamiento de un cursor rpido, de slo lectura y que avanza. El objeto DataTable es un objeto simple que representa un origen de datos. Se puede crear un DataTable de forma manual, o bien, se puede rellenar automticamente con comandos DataSet. DataTable desconoce el origen de los datos que contiene. Permite la manipulacin de los datos en la memoria y realiza operaciones como la exploracin, ordenacin, edicin, aplicacin de filtros, creacin de vistas, etc. El objeto DataSet no tiene un equivalente en ADO. Se trata de una clase contenedora de datos y es el objeto clave para realizar la abstraccin de datos de ADO.NET. DataSet agrupa uno o varios objetos DataTable. DataTable expone el contenido a travs de recopilaciones genricas, como filas y columnas. Al intentar la lectura desde una tabla de datos, puede pasar por dos capas distintas de objetos: DataTableMapping y DataView. El objeto DataTableMapping contiene la descripcin de una asignacin entre columnas de datos en un origen de datos y un objeto DataTable. El objeto DataSetCommand utiliza esta clase al rellenar un DataSet. Mantiene el vnculo entre columnas abstractas en el conjunto de datos y las fsicas en el origen de datos. Una vista de la tabla se procesa a travs del objeto DataView. Representa una vista personalizada de DataTable y se puede enlazar a controles especializados, como el Datagrid en los formularios de Windows y de Web. Este objeto es el equivalente en memoria a la instruccin SQL CREATE VIEW. Todas las tablas en un objeto DataSet se pueden relacionar a travs de un campo comn. Un objeto DataRelation puede controlar esta relacin. Aunque resulta casi idntico en aspecto a la formas de datos en ADO, existe una diferencia considerable. No es necesario manejar el lenguaje de formas de datos y el resultado es una arquitectura de extrema flexibilidad. El modelo de exploracin en ADO.NET permite el desplazamiento sencillo desde la fila maestra de una tabla a todas las secundarias. El objeto DataRelation representa el equivalente en memoria a la instruccin JOIN y resulta til para implementar relaciones primaria/secundaria con columnas que incluyen el mismo tipo de datos. Una vez establecida la relacin, no se permite ningn cambio que la interrumpa y se origina una excepcin de tiempo de ejecucin. Las vistas y las relaciones constituyen dos mtodos para implementar los esquemas maestro/detalle. Recuerde que una vista es simplemente una mscara en los registros, mientras que una relacin es un vnculo dinmico establecido entre una o varias columnas de dos tablas y que con las relaciones no existe forma de cambiar las condiciones de orden o conjunto. Si el cdigo necesita relaciones de clave externa 1:1 y no se cambian los datos, resulta aconsejable utilizar sencillos comandos JOIN. Si necesita capacidades de filtro adicionales, utilice las vistas personalizadas de ADO.NET.

Traduccin del cdigo existente


Existe gran cantidad de pginas ASP que utilizan objetos ADO para extraer datos. A continuacin, revisaremos varias situaciones habituales con las que puede que tenga que enfrentarse en breve al cambiar o adaptar el cdigo. Si cuenta con pginas ASP que generan informes de un nico recordset, el objeto DataReader resulta idneo. Desplcese por l y saldr a la pgina.

String strConn, strCmd; strConn = "DATABASE=MyAgenda;SERVER=localhost;UID=sa;PWD=;"; strCmd = "Select * From Names where ID=" + contactID.Text; SQLConnection oCN = new SQLConnection(strConn); SQLCommand oCMD = new SQLCommand(strCmd, oCN); oCN.Open(); SQLDataReader dr; oCMD.Execute(out dr); while (dr.Read()) { // Usar dr.GetString(index) o // dr["field name"] para datos de Response.Write }

Adems, puede utilizar la propiedad HasMoreRows para comprobar rpidamente si DataReader est vaco. Si slo necesita desplazarse en una serie de registros, DataReader es ms rpido y eficaz. Esto es especialmente cierto si necesita consultar un nico registro. El contenido de DataReader no se puede editar, aunque siempre se puede extraer para ajustarlo a un objeto ms controlable como, por ejemplo, DataTable, o uno o varios objetos DataRow. DataReader deja de ser la herramienta perfecta si necesita tratar con relaciones complejas entre tablas y registros. En ADO, siempre se acaba trabajando con recordsets. Cuanto ms articulado sea el modelo de datos, ms complejos sern los comandos SQL. El modelo de exploracin permanece secuencial y, a menudo, almacena ms datos en la memoria cach de lo necesario. Los objetos DataSet y DataRelation representan el fundamento de esta especie de modelo de relacin de tablas. Para administrar relaciones primarias/secundarias, ADO adems conduce el motor de formas de datos. En cuanto a las funciones, las relaciones ADO.NET y las formas de datos son iguales. Sin embargo, en cuanto al diseo, tienen poco en comn. Los recordsets con formas incrustan toda la informacin en un nico objeto en forma de tablas. Las relaciones ADO.NET son vnculos dinmicos que se pueden establecer en cualquier momento entre dos tablas de datos. ADO se basa en el proveedor Shaping Service for OLE DB y contiene un lenguaje especfico de SQL para crear un recordset jerrquico dentro de la ejecucin de un nico comando ADO. En ADO.NET, cada objeto incluido en la relacin se considera siempre por separado. La propia relacin se expone como un objeto y recibe determinadas directrices de comportamiento. Por ejemplo, un objeto DataRelation puede mostrar cambios en cascada de las filas primarias a las secundarias. Para ello, agregue un objeto ForeignKeyConstraint en la coleccin de restricciones de DataTable. El objeto ForeignKeyConstraint representa una restriccin forzada en un conjunto de columnas asociadas a travs de una relacin de claves externas, siempre que un valor o una fila se elimina o se actualiza. Como se ha mencionado anteriormente, una vez que se ha establecido la relacin y hasta que no se termine mediante programacin, no se pueden introducir cambios que pudieran romperla. Adems, las relaciones no se transfieren. Puede establecer dos relaciones distintas entre, por ejemplo, clientes y pedidos y pedidos y productos. No obstante, mientras se desplaza por los pedidos de un cliente concreto, no puede saltar de un pedido a las filas relacionadas de conjuntos de productos. Por el contrario, debe abrir la relacin pedidos/productos por separado, encontrar el pedido que necesite y, a continuacin, solicitar las filas relacionadas. Por este motivo, a veces las relaciones 1:1 se procesan mejor a travs de las tradicionales y sencillas instrucciones SQL JOIN. Si necesita almacenar registros en el objeto de sesin ASP, puede realizarlo con ADO.NET y el objeto DataSet de forma segura, sin que se produzcan los efectos desagradables descritos en "Storing an ADO Recordset in GIT Might Cause An Access Violation" (http://support.microsoft.com/support/kb/articles/Q249/1/75.ASP) (en ingls), ni los problemas con la afinidad entre subprocesos.

Actualizacin de datos
Las aplicaciones Web suelen actualizar los datos mediante simples instrucciones SQL o, an mejor, procedimientos almacenados con parmetros. No obstante, al utilizar datos desconectados, puede que desee explotar servicios integrados para actualizar todos los registros que se deben revisar. Para ello, ADO proporciona mecanismos de actualizaciones por lotes. El mtodo UpdateBatch se utiliza para enviar cambios de Recordset guardados en el bfer de copia al servidor, de modo que se actualice el origen de datos. Utiliza un tipo de bloqueo Lock Optimistic que permite todos los cambios locales pendientes. Adems, enva todos los cambios al origen de datos en una nica operacin. Este tipo de bloqueo se produce cuando el origen de datos bloquea los registros que se desean cambiar nicamente mientras se realizan dichos cambios. Como resultado, dos usuarios pueden obtener acceso al mismo registro a la vez e introducir cambios que se sobrescriben con el siguiente. Obviamente, este mtodo funciona siempre que el origen de datos pueda detectar y rechazar conflictos de datos. Adems, asume que todo el origen de datos no es extremadamente voltil ni se encuentra sujeto a cambios frecuentes. De lo contrario, el costo de la reconciliacin ocasionada sera mayor que el ahorro de

algunos bloqueos Lock Pessimistic completos. En realidad, con el mtodo UpdateBatch , se devuelve un error si alguno de los cambios no es correcto. Entonces, obtenga acceso al error a travs de la coleccin Errors y el objeto Error. Si comprende el funcionamiento de los bloqueos Lock Optimistic en ADO, entender los motivos por los que el modelo ADO.NET para actualizar los datos resulta mucho ms eficaz. Desde el cdigo ADO, llame UpdateBatch y lo que suceda a partir de ese momento no depende de usted. Es decir, las actualizaciones se realizan en el servidor si el desplazamiento ocurre por las filas que se han cambiado, comparando el valor original con el actual en el registro correspondiente del origen de datos. Si todo coincide, la instruccin SQL correcta (INSERT, UPDATE o DELETE) se ejecuta en la tabla. El problema radica en el hecho de que no se puede controlar la instruccin SQL que realmente aplica los cambios. El cdigo de actualizacin en el servidor no resulta mejor que el que el usuario desarrolla, ni funciona si el objetivo es un proveedor que no es SQL. En el comienzo de esta seccin, se ha indicado que las aplicaciones Web suelen actualizar los datos a travs de procedimientos almacenados con parmetros. Sin embargo, esto no sucede si utiliza actualizaciones por lotes. En ADO.NET, este modelo se ha expandido en cierta medida. Actualmente se sigue un esquema ms genrico que permite especificar comandos propios para las operaciones bsicas, como la insercin, la eliminacin, la actualizacin y la seleccin. Resulta sencillo ver el motivo de abstraer el origen de datos y proporcionar la misma compatibilidad, independientemente de la naturaleza del origen de datos. La actualizacin por lotes en ADO.NET necesita la creacin de un comando DataSetCommand, SQLDataSetCommand o ADODataSetCommand. Nota En la versin Beta 2, los objetos DataSetCommand se denominarn objetos DataAdapter .

Una vez que cuente con un objeto DataSetCommand, llame el mtodo Update. DataSetCommand expone propiedades como InsertCommand, DeleteCommand, UpdateCommand y SelectCommand. Existen objetos Command, aunque no tiene que establecerlos a menos que el comportamiento predeterminado no cumpla las expectativas. Esto es igual en ADO. Durante Update, si alguna de las propiedades xxxCommand no se establece, pero existe informacin de clave primaria, el objeto Command se genera de forma automtica. Observe que para que esto funcione, debe contar con un juego de claves primarias para las tablas de datos implicadas. El siguiente cdigo muestra la forma de establecer una clave primaria para la tabla EmployeesList de un DataSet:

DataColumn[] keys = new DataColumn[1]; keys[0] = m_oDS.Tables["EmployeesList"].Columns["Id. empleado"]; m_oDS.Tables["EmployeesList"].PrimaryKey = keys;


Una clave primaria consiste en una matriz de objetos DataColumn. Si desea utilizar un procedimiento almacenado para actualizar una tabla, o bien, si trabaja con respecto a un proveedor de propiedad que no es SQL, utilizar estas propiedades de comando con frecuencia.

Compatibilidad ampliada para XML


En ADO, XML era simplemente un formato de entrada y salida. No obstante, en ADO.NET, XML es el formato de datos que proporciona los medios para manipular, reorganizar, compartir y transferir datos. Todo grupo de datos incluidos en DataSet, independientemente del origen, se puede manipular a travs de un modelo de programacin de dos caras. Puede obtener acceso de forma intercambiable a la informacin, fila tras fila y, asimismo, puede seguir una ruta jerrquica, no secuencial, dirigida por el modelo de objeto del documento XML. Un DataSet lee y escribe datos y esquemas como documentos XML. Los datos y los esquemas se pueden transportar en HTTP y utilizar en cualquier plataforma que comprenda XML. Los mismos datos se pueden procesar a travs de distintos esquemas (XSLT encuentra la forma de realizarlo) en momentos distintos. El mtodo ReadXmlSchema se utiliza para generar esquemas. Un esquema XML incluye una descripcin de las tablas en el juego de datos, as como las relaciones y restricciones de stas. Debe realizar esta operacin antes de solicitar que el mtodo ReadXmlData rellene el DataSet.

El siguiente cdigo de ejemplo muestra una pgina ASP.NET mnima que incluye una tabla de datos que se puede actualizar.

<%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.IO" %> <script runat="server" language="C#"> void Page_Load(Object source, EventArgs e) { DataSet data = new DataSet(); // Carga esquemas y datos XML StreamReader sr; sr = new StreamReader(Server.MapPath("data.xml")); data.ReadXml(sr); sr.Close(); // Agrega un registro enviado a travs de URL if (Request.QueryString.Count >0) { DataTable dt = data.Tables[0]; DataRow dr = dt.NewRow(); dr["FirstName"] = Request.QueryString["First"]; dr["LastName"] = Request.QueryString["Last"]; dt.Rows.Add(dr); dt.AcceptChanges(); StreamWriter sw; sw = new StreamWriter(Server.MapPath("data.xml")); data.WriteXml(sw); sw.Close();

// Actualiza IU (en una cuadrcula) grid.DataSource = data.Tables[0].DefaultView; grid.DataBind(); } </script>


Como se muestra en la figura 2, se pueden agregar nuevas filas en la tabla. No obstante, no existe una tabla de SQL Server o de Access detrs. Se trata nicamente de un archivo XML, aunque en el cdigo que ejecuta no existe rastro de los nodos XML o los mtodos XMLDOM. Utilice la misma interfaz intuitiva de las tablas de datos para leer y actualizar registros XML. Puede realizar lo mismo en ADO, aunque el modelo aqu es ms profundo y contiene mayor potencial para su explotacin.

Figura 2. Ejemplo de una tabla que se puede actualizar

Resumen
El xito de las aplicaciones Web ha cambiado el panorama del sistema distribuido habitual. Actualmente, la mayora de estos sistemas son de n niveles y se caracterizan por una elevada demanda y cada vez mayor de capacidad de escala e interoperabilidad. Como resultado, la desconexin de datos y XML se han convertido en las prcticas idneas y han obtenido una amplia aceptacin por parte del sector. ADO.NET intenta reunir algunas de las mejores prcticas actuales bajo la sombra de .NET. El modelo global de programacin para el acceso a datos es amplio y de una eficacia extrema. Aunque este modelo no rena todas las necesidades concretas de un usuario, representa un paso de grandes dimensiones hacia adelante en el diseo de un modelo para el futuro. No obstante, debe recordar que ADO.NET es una versin Beta y conlleva lmites para aceptar documentacin. Los programadores de ADO obtendrn mayores beneficios de esta versin, ya que tienen experiencia con gran cantidad de aspectos de ADO.NET, incluido el mayor nivel de abstraccin, que ha inspirado el modelo. El cdigo ADO.NET no es compatible con cdigo ADO existente, aunque el conjunto de funciones es similar. Para obtener el mximo rendimiento de ADO.NET, se debe esforzar en comprender el concepto de ste, en lugar de simplemente intentar cambiar el cdigo de la forma ms rpida. Independientemente del modelo de programacin .NET que seleccione (formularios de Windows, de Web o Servicios Web), ADO.NET le ayudar con los problemas relativos al acceso a datos.

http://www.microsoft.com/spanish/msdn/articulos/archivo/180501/voices/adonetdev.asp

Manejo de datos con ADO.NET Los datos y la informacin sobre la base de datos en ADO.NET est almacenados en el Objeto DataSet, que pertenece al Namespace System.Data. La estructura de este namespace es la siguiente: DataSet: Es el objeto principal en ADO.NET y contiene toda la informacin de la base de datos. DataTable: Contiene la informacin de una tabla determinada DataRow: Contiene la informacin de una fila, en una tabla determinada DataColumn: Contiene la informacin de una columna, en una tabla determinada DataRelation: Contiene la informacin acerca de la relacin entre dos columnas DataSetView: Contiene los detalles acerca de la vista de una tabla

Potrebbero piacerti anche