quarta-feira, 15 de agosto de 2012

Aqui irei mostrar como é possível carregar um arquivo XML dentro de um DataGridView usando o C# ou VB.NET.
Primeiramente, iremos criar um arquivo XML possuindo 4 tags, que serão as colunas no DataGridView. São elas: "nome", "endereco", "email" e "telefone".

O código XML é o seguinte:

<info>
    <clientes>
        <nome>Cristiano</nome>
        <endereco>Rua AAA</endereco>
        <email>programadoron@gmail.com</email>
        <telefone>12345</telefone>
    </clientes>
    <clientes>
        <nome>Maria</nome>
        <endereco>Rua BBB</endereco>
        <email>maria@mail.com</email>
        <telefone>1332345</telefone>
    </clientes>
    <clientes>
        <nome>Joao</nome>
        <endereco>Rua CCC</endereco>
        <email>joaozinho@mail.com</email>
        <telefone>5353543</telefone>
    </clientes>
    <clientes>
        <nome>Jose</nome>
        <endereco>Rua DDD</endereco>
        <email>zezinho@mail.com</email>
        <telefone>002345</telefone>
    </clientes>
</info>
Explicando...


A primeira tag  faz referência ao nome do nosso documento, assim como a tag  informa cada "registro" dentro do documento.
As tags que estão entre a tag e
 é uma "registro".
Dessa maneira, salvei na Desktop como info.xml.

Agora, dentro do Visual Studio, adicione um DataGridView e um Button.



Dentro do evento Click do botão, adicione o seguinte código:


// cria um novo DataSet
DataSet dadosXML = new DataSet();
// referencia ao arquivo XML            dadosXML.ReadXml(@"C:\\Users\\Cristiano\\Desktop\\info.xml");
// adiciona ao dataGridView
dataGridView1.DataSource = dadosXML.Tables[0];


Na última linha de código, repare que o índice da tabela do DataSet que criamos é zero. Isso porque há apenas uma tabela dentro do arquivo XML, que é a tabela "Clientes".
Para melhorar o entendimento, você pode criar mais tags dentro do arquivo XML além da tag .
Por exemplo:


<clientes>
        <nome>Cristiano</nome>
        <endereco>Rua AAA</endereco>
        <email>programadoron@gmail.com</email>
        <telefone>12345</telefone>
    </clientes>
<produtos>
        <nome>Computador</nome>
        <quantidade>20</quantidade>
        <preco>1500,00</preco&gt;
    </produtos>

Neste caso, temos duas tabelas, "Clientes" e "Produtos". 
Para exibir a segunda tabela, altere o índice para 1.

dataGridView1.DataSource = dadosXML.Tables[1];
Resultado:
Tabela Clientes:


Tabela Produtos:



É isso aí galera. Um abraço e até a próxima!!!

2 comentários:

  1. Como faço pra inserir os dados xml em colunas ja criadas no grid

    ResponderExcluir
  2. e como faço para salvar novamente no xml ?

    ResponderExcluir