Ler dados XML em um conjunto de dados em aplicativos .NET Framework

Observação

Os conjuntos de dados e as classes relacionadas são tecnologias herdadas do .NET Framework do início dos anos 2000 que permitem que os aplicativos trabalhem com dados na memória enquanto os aplicativos estão desconectados do banco de dados. Eles são bastante úteis em aplicativos que permitem que os usuários modifiquem dados e persistam as alterações no banco de dados. Embora os conjuntos de dados tenham se mostrado uma tecnologia muito bem-sucedida, é recomendado que os novos aplicativos .NET usem o Entity Framework Core. O Entity Framework proporciona uma forma mais natural de trabalhar com dados tabulares como modelos de objeto e conta com uma interface de programação mais simples.

O ADO.NET fornece métodos simples para trabalhar com dados XML. Neste passo a passo, você cria um aplicativo do Windows que carrega dados XML em um conjunto de dados. Em seguida, o conjunto de dados é exibido em um controle DataGridView. Por fim, um esquema XML baseado no conteúdo do arquivo XML é exibido em uma caixa de texto.

Pré-requisitos

Para concluir este tutorial, você precisa do Visual Studio com as seguintes cargas de trabalho instaladas:

  • Desenvolvimento para área de trabalho com .NET
  • Armazenamento de dados e processamento

Para instalá-las, abra Instalador do Visual Studio e escolha Modificar (ou Mais>Modificar) ao lado da versão do Visual Studio que você deseja modificar. Confira Modificar o Visual Studio.

Criar um novo projeto

Crie um projeto de Aplicativo do Windows Forms para C# ou Visual Basic. Dê ao projeto o nome ReadingXML.

Gerar o arquivo XML a ser lido no conjunto de dados

Como este passo a passo se concentra na leitura de dados XML em um conjunto de dados, o conteúdo de um arquivo XML é fornecido.

  1. No menu Projeto, selecione Adicionar novo item.

  2. Selecione Arquivo XML, dê ao arquivo o nome authors.xmle selecione Adicionar.

    O arquivo XML é carregado no designer e está pronto para edição.

  3. Cole os seguintes dados XML no editor abaixo da declaração 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. No menu Arquivo, selecione Salvar authors.xml.

Criar a interface do usuário

A interface do usuário do aplicativo é composta pelo seguinte:

  • Um controle DataGridView que exibe o conteúdo do arquivo XML como dados.

  • Um controle TextBox que exibe o esquema XML para o arquivo XML.

  • Dois controles Button.

    • Um botão lê o arquivo XML no conjunto de dados e o exibe no controle DataGridView.

    • Um segundo botão extrai o esquema do conjunto de dados e, por meio de um StringWriter, o exibe no controle TextBox.

Para adicionar controles ao formulário

  1. Abra Form1 no modo de exibição de design.

  2. Na Caixa de Ferramentas, arraste os seguintes controles para o formulário:

  3. Defina as seguintes propriedades:

    Control Propriedade Configuração
    TextBox1 Multilinha true
    ScrollBars Vertical
    Button1 Nome ReadXmlButton
    Texto Read XML
    Button2 Nome ShowSchemaButton
    Texto Show Schema

Criar o conjunto de dados que recebe os dados XML

Nesta etapa, você cria um conjunto de dados chamado authors. Para obter mais informações sobre conjuntos de dados, consulte Ferramentas de conjunto de dados no Visual Studio.

  1. No Gerenciador de Soluções, selecione o arquivo de origem para Form1 e, em seguida, o botão Designer de Exibição na barra de ferramentas do Gerenciador de Soluções.

  2. Na Caixa de Ferramentas, guia Dados, arraste um Conjunto de Dados para Form1.

  3. Na caixa de diálogo Adicionar Conjunto de Dados, selecione Conjunto de dados sem tipo e selecione OK.

    DataSet1 é adicionado à bandeja de componentes.

  4. Na janela Propriedades, defina o Nome e as propriedades DataSetName para AuthorsDataSet.

Criar o manipulador de eventos para ler o arquivo XML no conjunto de dados

O botão Ler XML lê o arquivo XML no conjunto de dados. Em seguida, define propriedades no controle DataGridView que o associam ao conjunto de dados.

  1. No Gerenciador de Soluções, selecione Form1 e, em seguida, o botão Designer de Exibição na barra de ferramentas do Gerenciador de Soluções.

  2. Clique duas vezes no botão Ler XML.

    O Editor de Código é aberto no manipulador de eventos ReadXmlButton_Click.

  3. Digite o seguinte código no manipulador 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. No código do manipulador de eventos ReadXMLButton_Click, altere a entrada filepath = para o caminho correto.

Criar o manipulador de eventos para exibir o esquema na caixa de texto

O botão Mostrar Esquema cria um objeto StringWriter que é preenchido com o esquema e exibido no controle TextBox.

  1. No Gerenciador de Soluções, selecione Form1 e, em seguida, o botão Designer de Exibição.

  2. Clique duas vezes no botão Mostrar esquema.

    O Editor de Código é aberto no manipulador de eventos ShowSchemaButton_Click.

  3. Cole o código a seguir no manipulador 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();
    }
    

Testar o formulário

Agora, é possível testar o formulário para garantir que ele se comporta da forma esperada.

  1. Selecione F5 para executar o aplicativo.

  2. Selecione o botão Ler XML.

    DataGridView exibe o conteúdo do arquivo XML.

  3. Selecione o botão Mostrar Esquema.

    A caixa de texto exibe o esquema XML para o arquivo XML.

Próximas etapas

Este passo a passo ensina os conceitos básicos da leitura de um arquivo XML em um conjunto de dados, bem como da criação de um esquema baseado no conteúdo do arquivo XML. Estas são algumas tarefas que você pode realizar em seguida:

  • Editar os dados no conjunto de dados e escrevê-los novamente como XML. Para obter mais informações, consulte WriteXml.

  • Edite os dados no conjunto de dados e escreva-os em um banco de dados.