Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Información general de ADO.NET




Enviado por miguel_tito733



    1. Conexiones
    2. Comandos
    3. Objetos
      DataReader
    4. Objetos DataSet y
      DataAdapter
    5. Resumen de la
      sección

    ADO.NET es una evolución del modelo de
    acceso a datos de ADO que
    controla directamente los requisitos del usuario para programar
    aplicaciones escalables. Se diseñó
    específicamente para el Web, teniendo en
    cuenta la escalabilidad, la independencia
    y el estándar XML.

    ADO.NET utiliza algunos objetos ADO, como
    Connection y Command, y también agrega
    objetos nuevos. Algunos de los nuevos objetos clave de ADO.NET
    son DataSet, DataReader y
    DataAdapter.

    La diferencia más importante entre esta fase
    evolucionada de ADO.NET y las arquitecturas de datos anteriores
    es que existe un objeto, DataSet, que es independiente y
    diferente de los almacenes de
    datos. Por ello, DataSet funciona como una entidad
    independiente. Se puede considerar el objeto DataSet como un
    conjunto de registros que
    siempre está desconectado y que no sabe nada sobre el
    origen y el destino de los datos que contiene. Dentro de un
    objeto DataSet, de la misma manera que dentro de una
    base de datos,
    hay tablas, columnas, relaciones, restricciones, vistas,
    etc.

    El objeto DataAdapter es el objeto que se conecta
    a la base de datos
    para llenar el objeto DataSet. A continuación, se
    vuelve a conectar a la base de datos para actualizar los datos de
    dicha base de datos a partir de las operaciones
    realizadas en los datos contenidos en el objeto DataSet.
    En el pasado, el procesamiento de
    datos se basaba principalmente en la conexión. Ahora,
    con el fin de proporcionar a las aplicaciones multinivel mayor
    eficacia, se
    está adoptando para el procesamiento de
    datos un enfoque basado en mensajes que manipulan fragmentos
    de información. En el centro de este enfoque
    se sitúa el objeto DataAdapter, que proporciona un
    puente entre un objeto DataSet y un almacén de
    datos de origen para recuperar y guardar datos. Para ello,
    envía solicitudes a los comandos SQL apropiados
    que se ejecutan en el almacén de
    datos.

    El objeto DataSet basado en XML proporciona
    un modelo de
    programación coherente que funciona con
    todos los modelos de
    almacenamiento de
    datos: sin formato, relacional o jerárquico. Funciona sin
    tener 'conocimiento'
    del origen de los datos y representa a los datos que contiene
    como colecciones y tipos de datos.
    Independientemente del origen de los datos del objeto
    DataSet, éstos se manipulan mediante el mismo
    conjunto de API estándar expuestas a través del
    objeto DataSet y sus objetos subordinados.

    Aunque el objeto DataSet no tiene conocimiento
    del origen de sus datos, el proveedor administrado tiene información detallada y específica.
    La función
    del proveedor administrado es conectar, llenar y almacenar el
    objeto DataSet desde almacenes de
    datos (o viceversa). Los proveedores de
    datos OLE DB y SQL Server de
    .NET (System.Data.OleDb y System.Data.SqlClient) que forman parte
    de .Net Framework proporcionan cuatro objetos básicos:
    Command, Connection, DataReader y
    DataAdapter. En el resto de las secciones de este
    documento, se describirá cada parte del objeto
    DataSet y los proveedores de
    datos OLE DB y SQL Server de
    .NET, con el fin de explicar qué son y cómo se
    pueden utilizar al programar.

    En las siguientes secciones se presentarán
    algunos objetos que han evolucionado desde la tecnología anterior y
    otros objetos nuevos. Los objetos son los siguientes:

    • Objetos Connection. Para conectar con una base
      de datos y administrar las transacciones en una base de
      datos.
    • Objetos Command. Para emitir comandos
      SQL a una
      base de datos.
    • Objetos DataReader. Proporcionan una forma de
      leer una secuencia de registros de
      datos sólo hacia delante desde un origen de datos SQL
      Server.
    • Objetos DataSet. Para almacenar datos sin
      formato, datos XML y datos relacionales, así como para
      configurar el acceso remoto y programar sobre datos de este
      tipo.
    • Objetos DataAdapter. Para insertar datos en un
      objeto DataSet y reconciliar datos de la base de
      datos.

    Nota al trabajar con conexiones a una base de
    datos, hay dos opciones diferentes: un proveedor de datos de SQL
    Server de .NET (System.Data.SqlClient) y un proveedor de datos
    OLE DB de .NET (System.Data.OleDb). En estos ejemplos se
    utilizará el proveedor de datos SQL Server de .NET.
    Están programados para comunicarse directamente con
    Microsoft SQL
    Server. El proveedor de datos OLE DB de .NET se utiliza para
    comunicarse con cualquier proveedor OLE DB (ya que utiliza OLE DB
    como tecnología subyacente).

    Conexiones

    Para establecer la
    comunicación con bases de datos,
    se utilizan las conexiones y se representan mediante clases
    específicas de proveedor, como SQLConnection. Los
    comandos viajan por las conexiones y devuelven conjuntos de
    resultados en forma de secuencias que puede leer un objeto
    DataReader o que se pueden insertar en un objeto
    DataSet.

    En el ejemplo siguiente se muestra la forma
    de crear un objeto de conexión. Las conexiones se pueden
    abrir explícitamente mediante llamadas al método
    Open de la conexión; también se pueden abrir
    implícitamente al utilizar un objeto
    DataAdapter.

    Para ver el gráfico seleccione la
    opción "Descargar" del menú superior

    VB AdoOverview1.aspx

    [] | [Ver
    código fuente
    ]

    Comandos

    Los comandos contienen la información que se
    envía a una base de datos y se representan mediante clases
    específicas de un proveedor, como SQLCommand. Un
    comando podría ser una llamada a un procedimiento
    almacenado, una instrucción UPDATE o una
    instrucción que devuelve resultados. También es
    posible utilizar parámetros de entrada o de resultados y
    devolver valores como
    parte de la sintaxis del comando. En el ejemplo siguiente se
    muestra la
    forma de ejecutar una instrucción INSERT en la base de
    datos Northwind.

    Para ver el gráfico seleccione la
    opción "Descargar" del menú superior

    VB AdoOverview2.aspx

    [Ejecutar
    ejemplo
    ] | [Ver
    código fuente
    ]

    Objetos DataReader

    El objeto DataReader es, en cierto modo,
    sinónimo de un cursor de sólo lectura y
    sólo hacia delante para datos. La API de DataReader
    es compatible con datos sin formato y con datos
    jerárquicos. Cuando se ejecuta un comando en la base de
    datos, se devuelve un objeto DataReader. El formato del
    objeto DataReader devuelto es distinto de un conjunto de
    registros. Por ejemplo, podría utilizarse el objeto
    DataReader para mostrar los resultados de una lista de
    búsqueda en una página
    Web.

    Para ver el gráfico seleccione la
    opción "Descargar" del menú superior

    VB AdoOverview3.aspx

    [Ejecutar
    ejemplo
    ] | [Ver
    código fuente

    Objetos DataSet y DataAdapter

    Objetos DataSet
    El objeto DataSet es similar al objeto Recordset de
    ADO, pero más eficaz y con una diferencia importante:
    DataSet siempre está desconectado. El objeto
    DataSet representa a una memoria
    caché de datos, con estructuras
    análogas a las de una base de datos, como tablas,
    columnas, relaciones y restricciones. Sin embargo, aunque se
    puede utilizar un objeto DataSet como una base de datos (y
    su comportamiento
    es muy similar), es importante recordar que los objetos
    DataSet no interactúan directamente con bases de datos ni
    con otros datos de origen. Esto permite al programador trabajar
    con un modelo de programación que siempre es coherente,
    independientemente de dónde resida el origen de datos. En
    los objetos DataSet se pueden colocar datos provenientes
    de una base de datos, un archivo XML,
    código
    o información escrita por el usuario. A
    continuación, a medida que se realizan cambios en el
    objeto DataSet, se puede hacer un seguimiento y una
    comprobación de los cambios antes de actualizar los datos
    de origen. El método
    GetChanges del objeto DataSet crea en realidad otro
    objeto DataSet que sólo contiene los cambios
    realizados en los datos. Posteriormente, un objeto
    DataAdapter u otros objetos, utilizan este objeto
    DataSet para actualizar el origen de datos
    original.

    El objeto DataSet tiene muchas características de XML, incluida la
    capacidad de producir y consumir datos XML y esquemas XML. Los
    esquemas XML se pueden utilizar para describir esquemas
    intercambiables a través de servicios
    Web. De hecho,
    un objeto DataSet con un esquema puede compilarse con
    seguridad de
    tipos y finalización automática de
    instrucciones.

    Objetos DataAdapter (OLEDB/SQL)
    El objeto DataAdapter funciona como un puente entre el
    objeto DataSet y los datos de origen. El uso del objeto
    SqlDataAdapter específico del proveedor (junto con
    los objetos SqlCommand y SqlConnection asociados)
    permite aumentar el rendimiento global al trabajar con bases de
    datos de Microsoft SQL
    Server. Para otras bases de datos compatibles con OLE DB, se debe
    utilizar el objeto OleDbDataAdapter y los objetos
    OleDbCommand y OleDbConnection
    asociados.

    El objeto DataAdapter utiliza comandos para
    actualizar el origen de datos después de hacer
    modificaciones en el objeto DataSet. Si se utiliza el
    método Fill del objetoDataAdapter, se llama
    al comando SELECT; si se utiliza el método Update
    se llama al comando INSERT, UPDATE o DELETE para cada fila
    modificada. Es posible establecer explícitamente estos
    comandos con el fin de controlar las instrucciones que se
    utilizan en tiempo de
    ejecución para resolver cambios, incluido el uso de
    procedimientos
    almacenados. En escenarios ad-hoc, un objeto
    CommandBuilder puede generarlos en tiempo de
    ejecución a partir de una instrucción de selección.
    Sin embargo, para generar en tiempo de ejecución hay que
    hacer un viaje de ida y vuelta adicional al servidor con el
    fin de recopilar los metadatos necesarios; por tanto, si se
    proporcionan explícitamente los comandos INSERT, UPDATE y
    DELETE en tiempo de diseño,
    el rendimiento en tiempo de ejecución
    mejorará.

    SqlConnection
    myConnection = new
    SqlConnection("server=(local)VSdotNET;Trusted_Connection=yes;database=northwind");

    SqlDataAdapter
    mySqlDataAdapter = new SqlDataAdapter("select * from
    customers", myConnection);

    mySqlDataAdapter.InsertCommand.CommandText =
    "sp_InsertCustomer";

    mySqlDataAdapter.InsertCommand.CommandType =
    CommandType.StoredProcedure;

    mySqlDataAdapter.DeleteCommand.CommandText =
    "sp_DeleteCustomer";

    mySqlDataAdapter.DeleteCommand.CommandType =
    CommandType.StoredProcedure;

    mySqlDataAdapter.UpdateCommand.CommandText =
    "sp_UpdateCustomers";

    mySqlDataAdapter.UpdateCommand.CommandType =
    CommandType.StoredProcedure;

    Dim myConnection As
    SqlConnection = New
    SqlConnection("server=(local)VSdotNET;Trusted_Connection=yes;database=northwind")

    Dim
    mySqlDataAdapter As SqlDataAdapter = New
    SqlDataAdapter("select * from customers",
    myConnection)

    mySqlDataAdapter.InsertCommand.CommandText =
    "sp_InsertCustomer"

    mySqlDataAdapter.InsertCommand.CommandType =
    CommandType.StoredProcedure

    mySqlDataAdapter.DeleteCommand.CommandText =
    "sp_DeleteCustomer"

    mySqlDataAdapter.DeleteCommand.CommandType =
    CommandType.StoredProcedure

    mySqlDataAdapter.UpdateCommand.CommandText =
    "sp_UpdateCustomers"

    mySqlDataAdapter.UpdateCommand.CommandType =
    CommandType.StoredProcedure

    C#

    VB

     

    mySqlDataAdapter.Update(myDataSet);

    mySqlDataAdapter.Update(myDataSet)

    C#

    VB

    Los registros se asignan a los comandos correspondientes
    de la forma apropiada.

    Para ver el gráfico seleccione la
    opción "Descargar" del menú superior

    Figura: Objetos DataAdapter y
    DataSet

    En el ejemplo siguiente se ilustra la carga de un objeto
    DataAdapter a través de una instrucción
    SELECT. A continuación, se actualizan, eliminan y agregan
    algunos registros en el objeto DataSet. Por último,
    se devuelven las actualizaciones a la base de datos de origen a
    través del objeto DataAdapter. En la página,
    se muestran los comandos DeleteCommand, InsertCommand y
    UpdateCommand creados. También se ilustra el uso de varios
    objetos DataAdapter para cargar varias tablas (Customers y
    Orders) en el objeto DataSet.

    Para ver el gráfico seleccione la
    opción "Descargar" del menú superior

    VB AdoOverview4.aspx

    [Ejecutar
    ejemplo
    ] | [Ver
    código fuente
    ]

    Resumen
    de la sección

    1. La tecnología ADO.NET, integrada en .Net
      Framework, es el siguiente estado de
      evolución de ADO.
    2. Se diseñó teniendo en cuenta los
      modelos
      multinivel, la independencia y el estándar XML. Para
      estos escenarios se proporcionan dos objetos nuevos,
      DataSet y DataAdapter.
    3. Se puede utilizar ADO.NET para obtener datos de una
      secuencia o para almacenar datos en una memoria
      caché a fin de realizar actualizaciones.
    4. La documentación contiene mucha más
      información acerca de ADO.NET.
    5. Hay que tener en cuenta que se puede ejecutar un
      comando directamente en la base de datos para realizar
      inserciones, actualizaciones y eliminaciones. Para insertar,
      actualizar o eliminar datos no hay que colocarlos primero en un
      objeto DataSet.
    6. Además, se puede utilizar un objeto
      DataSet para enlazar con los datos, examinarlos y
      explorar sus relaciones.

    Miguel Tito

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter