Compartir a través de


Lectura de datos XML en un conjunto de datos en aplicaciones de .NET Framework

Nota:

Los conjuntos de datos y las clases relacionadas son tecnologías heredadas de .NET Framework de principios de la década de 2000 que permiten a las aplicaciones trabajar con datos en memoria mientras están desconectadas de la base de datos. Las tecnologías son especialmente útiles para las aplicaciones que permiten a los usuarios modificar los datos y conservar los cambios en la base de datos. Aunque los conjuntos de datos han demostrado ser una tecnología de gran éxito, se recomienda que las nuevas aplicaciones de .NET usen Entity Framework Core. Entity Framework proporciona una manera más natural de trabajar con datos tabulares como modelos de objetos y tiene una interfaz de programación más sencilla.

ADO.NET proporciona métodos sencillos para trabajar con datos XML. En este tutorial, creará una aplicación de Windows que carga datos XML en un conjunto de datos. A continuación, el conjunto de datos se muestra en un control DataGridView. Por último, se muestra un esquema XML basado en el contenido del archivo XML en un cuadro de texto.

Requisitos previos

Para completar este tutorial, necesita Visual Studio con las siguientes cargas de trabajo instaladas:

  • Desarrollo de escritorio de .NET
  • Almacenamiento y procesamiento de datos

Para instalarlas, abra el Instalador de Visual Studio y elija Modificar (o Más>modificar) junto a la versión de Visual Studio que desea modificar. Vea Modificación de Visual Studio.

Creación de un nuevo proyecto

Cree un nuevo proyecto de aplicación de Windows Forms para C# o Visual Basic. Asigne al proyecto el nombre ReadingXML.

Generación del archivo XML para leerse en el conjunto de datos

Dado que este tutorial se centra en la lectura de datos XML en un conjunto de datos, se proporciona el contenido de un archivo XML.

  1. En el menú Proyecto, seleccione Agregar nuevo elemento.

  2. Seleccione Archivo XML, asigne al archivo el nombre authors.xml y, luego, elija Agregar.

    El archivo XML se carga en el diseñador y está listo para su edición.

  3. Pegue los siguientes datos XML en el editor debajo de la declaración XML:

    <Authors_Table>
      <authors>
        <au_id>172-32-1176</au_id>
        <au_lname>White</au_lname>
        <au_fname>Johnson</au_fname>
        <phone>408 496-7223</phone>
        <address>10932 Bigge Rd.</address>
        <city>Menlo Park</city>
        <state>CA</state>
        <zip>94025</zip>
        <contract>true</contract>
      </authors>
      <authors>
        <au_id>213-46-8915</au_id>
        <au_lname>Green</au_lname>
        <au_fname>Margie</au_fname>
        <phone>415 986-7020</phone>
        <address>309 63rd St. #411</address>
        <city>Oakland</city>
        <state>CA</state>
        <zip>94618</zip>
        <contract>true</contract>
      </authors>
      <authors>
        <au_id>238-95-7766</au_id>
        <au_lname>Carson</au_lname>
        <au_fname>Cheryl</au_fname>
        <phone>415 548-7723</phone>
        <address>589 Darwin Ln.</address>
        <city>Berkeley</city>
        <state>CA</state>
        <zip>94705</zip>
        <contract>true</contract>
      </authors>
      <authors>
        <au_id>267-41-2394</au_id>
        <au_lname>Hunter</au_lname>
        <au_fname>Anne</au_fname>
        <phone>408 286-2428</phone>
        <address>22 Cleveland Av. #14</address>
        <city>San Jose</city>
        <state>CA</state>
        <zip>95128</zip>
        <contract>true</contract>
      </authors>
      <authors>
        <au_id>274-80-9391</au_id>
        <au_lname>Straight</au_lname>
        <au_fname>Dean</au_fname>
        <phone>415 834-2919</phone>
        <address>5420 College Av.</address>
        <city>Oakland</city>
        <state>CA</state>
        <zip>94609</zip>
        <contract>true</contract>
      </authors>
    </Authors_Table>
    
  4. En el menú Archivo, seleccione Guardar authors.xml.

Creación de la interfaz de usuario

La interfaz de usuario de esta aplicación consta de lo siguiente:

  • Control DataGridView que muestra el contenido del archivo XML como datos.

  • Control TextBox que muestra el esquema XML para el archivo XML.

  • Dos controles Button.

    • Un botón lee el archivo XML en el conjunto de datos y lo muestra en el control DataGridView.

    • Un segundo botón extrae el esquema del conjunto de datos y, mediante StringWriter, lo muestra en el control TextBox.

Para agregar controles al formulario

  1. Abra Form1 en la vista de diseño.

  2. En el Cuadro de herramientas, arrastre los controles siguientes al formulario:

  3. Establezca las siguientes propiedades:

    Control Propiedad Parámetro
    TextBox1 Multiline true
    ScrollBars Vertical
    Button1 Nombre ReadXmlButton
    Texto Read XML
    Button2 Nombre ShowSchemaButton
    Texto Show Schema

Creación del conjunto de datos que recibe los datos XML

En este paso, creará un nuevo conjunto de datos llamado authors. Para más información sobre los conjuntos de datos, consulte Herramientas de conjuntos de datos en Visual Studio.

  1. En el Explorador de soluciones, seleccione el archivo de origen de Form1 y, luego, elija el botón Diseñador de vistas en la barra de herramientas del Explorador de soluciones.

  2. En el Cuadro de herramientas, pestaña Datos, arrastre un conjunto de datos a Form1.

  3. En el cuadro de diálogo Agregar conjunto de datos, seleccione Conjunto de datos sin tipo y, luego, elija Aceptar.

    DataSet1 se agrega a la bandeja de componentes.

  4. En la ventana Propiedades, establezca el nombre y las propiedades DataSetName de AuthorsDataSet.

Creación del controlador de eventos para leer el archivo XML en el conjunto de datos

El botón Leer XML lee el archivo XML en el conjunto de datos. A continuación, establece las propiedades del control DataGridView que lo enlazan al conjunto de datos.

  1. En el Explorador de soluciones, seleccione Form1 y, luego, elija el botón Diseñador de vistas de la barra de herramientas del Explorador de soluciones.

  2. Haga doble clic en el botón Leer XML.

    Se abre el Editor de código en el controlador de eventos ReadXmlButton_Click.

  3. Escriba el código siguiente en el controlador de eventos ReadXmlButton_Click:

    private void ReadXmlButton_Click(object sender, EventArgs e)
    {
        string filePath = "Complete path where you saved the XML file";
    
        AuthorsDataSet.ReadXml(filePath);
    
        dataGridView1.DataSource = AuthorsDataSet;
        dataGridView1.DataMember = "authors";
    }
    
  4. En el código del controlador de eventos ReadXMLButton_Click, cambie la entrada filepath = por la ruta de acceso correcta.

Creación del controlador de eventos para mostrar el esquema en el cuadro de texto

El botón Mostrar esquema crea un objeto StringWriter que se rellena con el esquema y se muestra en el control TextBox.

  1. En el Explorador de soluciones, seleccione Form1 y, luego, elija Diseñador de vistas.

  2. Haga doble clic en el botón Mostrar esquema.

    Se abre el Editor de código en el controlador de eventos ShowSchemaButton_Click.

  3. Pegue el código siguiente en el controlador de eventos ShowSchemaButton_Click.

    private void ShowSchemaButton_Click(object sender, EventArgs e)
    {
        System.IO.StringWriter swXML = new System.IO.StringWriter();
        AuthorsDataSet.WriteXmlSchema(swXML);
        textBox1.Text = swXML.ToString();
    }
    

Probar el formulario

Puede comprobar el formulario para asegurarse de que se comporta de la forma prevista.

  1. Seleccione F5 para ejecutar la aplicación.

  2. Seleccione el botón Leer XML.

    DataGridView muestra el contenido del archivo XML.

  3. Seleccione el botón Mostrar esquema.

    El cuadro de texto muestra el esquema XML del archivo XML.

Pasos siguientes

Este tutorial le enseña los conceptos básicos de la lectura de un archivo XML en un conjunto de datos, así como la creación de un esquema basado en el contenido de dicho archivo. Estas son algunas tareas que podría hacer a continuación:

  • Editar los datos del conjunto de datos y escribirlos como XML. Para obtener más información, vea WriteXml.

  • Editar los datos del conjunto de datos y escribirlos en una base de datos.