Compartilhar via


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

Observação

A DataSet classe 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 são desconectados do banco de dados. As tecnologias são especialmente úteis para aplicativos que permitem que os usuários modifiquem dados e persistam as alterações no banco de dados. Embora os conjuntos de dados sejam uma tecnologia comprovadamente bem-sucedida, a abordagem recomendada para novos aplicativos .NET é usar o Entity Framework Core. O Entity Framework fornece uma maneira mais natural de trabalhar com dados tabulares como modelos de objeto e tem uma interface de programação mais simples.

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 de aplicativos para desktop .NET
  • Processamento e armazenamentos de dados

Para instalá-los, abra do 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 novo projeto de aplicativo do Windows Forms para C# ou Visual Basic. Nomeie o projeto 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, nomeie o arquivo 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 para este aplicativo consiste no seguinte:

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

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

  • Dois controles Button.

    • Um botão lê o arquivo XML para o 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:

    Controle Propriedade Configurações
    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ê criará um novo 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 do Form1 e, em seguida, selecione o botão Exibir Designer na barra de ferramentas do Gerenciador de Soluções .

  2. Na caixa de ferramentas, guia Dados, arraste um Conjunto de Dados para o Form1.

  3. Na caixa de diálogo Adicionar Conjunto de Dados , selecione Conjunto de dados não tipado e, em seguida, selecione OK.

    DataSet1 é adicionado à bandeja de componentes.

  4. Na janela Propriedades, defina as propriedades Nome e 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, selecione o botão Exibir Designer 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 ReadXmlButton_Click eventos.

  3. Digite o seguinte código no ReadXmlButton_Click manipulador de eventos:

    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 ReadXMLButton_Click manipulador de eventos, altere a filepath = entrada para o caminho correto.

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

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

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

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

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

  3. Cole o código a seguir no ShowSchemaButton_Click manipulador de eventos.

    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 você pode testar o formulário para garantir que ele se comporte conforme o esperado.

  1. Selecione F5 para executar o aplicativo.

  2. Selecione o botão Ler XML .

    O DataGridView exibe o conteúdo do arquivo XML.

  3. Selecione o botão Mostrar Esquema .

    A caixa de texto exibe o esquema XML do 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 a criação de um esquema com base no conteúdo do arquivo XML. Aqui estão algumas tarefas que você pode fazer a seguir:

  • Edite os dados no conjunto de dados e escreva-os 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.