Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Easy .net magazine ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Exportando DataTables para arquivos XML - Easy .net magazine 9
O artigo dá sequência ao uso dos arquivos XML dentro do framework .NET e a linguagem C#. Desta vez, será mostrado como manipular estes arquivos usando as classes do ADO.NET que é a camada destinada ao trabalho dos dados contidos em bancos de dados, muito embora, não fique restrita apenas a bancos de dados relacionais.
Easy .net magazine 9
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Easy .net magazine 9
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Easy .net magazine 9
Exportando DataTables para arquivos XML
Como usar ADO.NET para gerar arquivos XML
Se existe uma tecnologia recente que rapidamente começou a ser adotada dentro do processamento de dados foi a linguagem de marcação XML. Surgida em meados dos anos 1990 é utilizada em quase todos os tipos de aplicação principalmente para a persistência e intercâmbio de dados dos programas. O aspecto mais importante da linguagem é a forma estruturada e hierárquica que os dados são gravados nos arquivos. Com um editor de texto simples como o bloco de notas do Windows e um mínimo de conhecimento de estrutura de dados é possível com pouco tempo entender a estrutura do arquivo e saber quais os dados armazenados e qual a sua estrutura e hierarquia. Veja um arquivo de teste sendo exibido dentro do bloco de notas na Figura 1.
No arquivo pode-se perceber rapidamente que se trata de um registro de dados de um fictício funcionário de uma empresa. Além de alguns dados do mesmo, armazena diversos registros com dados de seus dependentes. Note que o arquivo permite vários tipos de dados como texto, números inteiros, decimais e datas. É possível também preparar o arquivo para aceitar caracteres especiais vinculados com determinados idiomas como a acentuação do idioma português. Tudo isso é identificado rapidamente apenas olhando-se para o arquivo. Mas, justamente por causa desta facilidade de se entender a estrutura do arquivo é que é tão complicado manipular via programação estes arquivos. Considere por exemplo a hierarquia dos nós de dependentes. Normalmente são usadas as classes de System.Xml para ler e gravar os dados dos arquivos XML. O que ainda assim é complicado porque este arquivo possui diversos níveis nos nós dos dados. Considere ainda se existir a necessidade de se editar estes dados e em seguida, gravar novamente o seu conteúdo.
ADO.NET
Este componente do framework .NET (encontrado em System.Data) disponibiliza uma série de classes que fazem o trabalho de acesso e manipulação aos dados de formas bem distintas. O acesso e edição dos dados estão bem separados permitindo e facilitando principalmente o método de trabalho “desconectado”.
Neste modelo a conexão com a fonte de dados, que pode ser um servidor SQL, arquivos do Access ou qualquer outra fonte de dados suportada é realizada para recuperar os arquivos e enviar as atualizações. Uma vez carregados os dados, estes são manipulados localmente, sem a necessidade de manter a conexão aberta, sendo esta, requisitada somente quando houver necessidade de nova consulta ou de se enviar os dados de volta para a sua fonte. Os principais componentes para o trabalho com os dados de forma hierárquica e que serão vistos neste artigo são as classes DataTable e DataSet.
O número de componentes de ADO.NET é vasto. Graças a arquitetura aberta do framework (arquitetura aberta não é o mesmo que código fonte aberto) onde as especificações de cada componente é bem documentada, foi possível que os desenvolvedores criassem classes para manipulação de outros bancos de dados diferente dos que são suportados nativamente pelo framework. Este artigo não vai se aprofundar em ADO.NET mas, apenas descrever como este pode ser usado para se manipular os arquivos XML.
A classe DataTable
Consiste de um conjunto de colunas – ligadas às colunas de uma tabela do banco de dados – e linhas representando cada uma, um registro. As colunas são definidas pela classe DataColumn sendo que suas propriedades armazenam características tais como:
• Tipo do dado a ser armazenado: texto, números inteiros e decimais, data etc.;
• Restrições: valor máximo e mínimo, duplicações, bloqueio de valores nulos;
• Expressões: usadas para que o conteúdo de dados seja definido a partir do conteúdo de uma ou mais colunas;
• A coluna de origem na tabela do banco de dados.
Também é possível classificar os registros dentro de um objeto deste tipo e realizar relacionamentos com outros objetos do mesmo tipo. Dentre os métodos que a classe oferece, os que nos interessam para a manipulação dos arquivos XML são dois: WriteXml e ReadXml.
O primeiro, como é possível perceber logo no nome, é responsável pela gravação dos dados que estão contidos na tabela para o arquivo XML. Este método possui muitas sobrecargas as quais permitem escrever os dados no formato XML em um arquivo localizado localmente ou na rede, usando uma instância da classe XmlWriter que é responsável por gerar um documento XML na memória, no disco, etc., ou ainda, usando uma stream para enviar dados pela rede ou mesmo pela Internet. Para o trabalho deste artigo vamos estudar duas sobrecargas sendo que a primeira escreve em um arquivo recebendo como parâmetro apenas o nome deste:
DataTable.WriteXml();
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
Como usar ADO.NET para gerar arquivos XML
Se existe uma tecnologia recente que rapidamente começou a ser adotada dentro do processamento de dados foi a linguagem de marcação XML. Surgida em meados dos anos 1990 é utilizada em quase todos os tipos de aplicação principalmente para a persistência e intercâmbio de dados dos programas. O aspecto mais importante da linguagem é a forma estruturada e hierárquica que os dados são gravados nos arquivos. Com um editor de texto simples como o bloco de notas do Windows e um mínimo de conhecimento de estrutura de dados é possível com pouco tempo entender a estrutura do arquivo e saber quais os dados armazenados e qual a sua estrutura e hierarquia. Veja um arquivo de teste sendo exibido dentro do bloco de notas na Figura 1.
No arquivo pode-se perceber rapidamente que se trata de um registro de dados de um fictício funcionário de uma empresa. Além de alguns dados do mesmo, armazena diversos registros com dados de seus dependentes. Note que o arquivo permite vários tipos de dados como texto, números inteiros, decimais e datas. É possível também preparar o arquivo para aceitar caracteres especiais vinculados com determinados idiomas como a acentuação do idioma português. Tudo isso é identificado rapidamente apenas olhando-se para o arquivo. Mas, justamente por causa desta facilidade de se entender a estrutura do arquivo é que é tão complicado manipular via programação estes arquivos. Considere por exemplo a hierarquia dos nós de dependentes. Normalmente são usadas as classes de System.Xml para ler e gravar os dados dos arquivos XML. O que ainda assim é complicado porque este arquivo possui diversos níveis nos nós dos dados. Considere ainda se existir a necessidade de se editar estes dados e em seguida, gravar novamente o seu conteúdo.
ADO.NET
Este componente do framework .NET (encontrado em System.Data) disponibiliza uma série de classes que fazem o trabalho de acesso e manipulação aos dados de formas bem distintas. O acesso e edição dos dados estão bem separados permitindo e facilitando principalmente o método de trabalho “desconectado”.
Neste modelo a conexão com a fonte de dados, que pode ser um servidor SQL, arquivos do Access ou qualquer outra fonte de dados suportada é realizada para recuperar os arquivos e enviar as atualizações. Uma vez carregados os dados, estes são manipulados localmente, sem a necessidade de manter a conexão aberta, sendo esta, requisitada somente quando houver necessidade de nova consulta ou de se enviar os dados de volta para a sua fonte. Os principais componentes para o trabalho com os dados de forma hierárquica e que serão vistos neste artigo são as classes DataTable e DataSet.
O número de componentes de ADO.NET é vasto. Graças a arquitetura aberta do framework (arquitetura aberta não é o mesmo que código fonte aberto) onde as especificações de cada componente é bem documentada, foi possível que os desenvolvedores criassem classes para manipulação de outros bancos de dados diferente dos que são suportados nativamente pelo framework. Este artigo não vai se aprofundar em ADO.NET mas, apenas descrever como este pode ser usado para se manipular os arquivos XML.
A classe DataTable
Consiste de um conjunto de colunas – ligadas às colunas de uma tabela do banco de dados – e linhas representando cada uma, um registro. As colunas são definidas pela classe DataColumn sendo que suas propriedades armazenam características tais como:
• Tipo do dado a ser armazenado: texto, números inteiros e decimais, data etc.;
• Restrições: valor máximo e mínimo, duplicações, bloqueio de valores nulos;
• Expressões: usadas para que o conteúdo de dados seja definido a partir do conteúdo de uma ou mais colunas;
• A coluna de origem na tabela do banco de dados.
Também é possível classificar os registros dentro de um objeto deste tipo e realizar relacionamentos com outros objetos do mesmo tipo. Dentre os métodos que a classe oferece, os que nos interessam para a manipulação dos arquivos XML são dois: WriteXml e ReadXml.
O primeiro, como é possível perceber logo no nome, é responsável pela gravação dos dados que estão contidos na tabela para o arquivo XML. Este método possui muitas sobrecargas as quais permitem escrever os dados no formato XML em um arquivo localizado localmente ou na rede, usando uma instância da classe XmlWriter que é responsável por gerar um documento XML na memória, no disco, etc., ou ainda, usando uma stream para enviar dados pela rede ou mesmo pela Internet. Para o trabalho deste artigo vamos estudar duas sobrecargas sendo que a primeira escreve em um arquivo recebendo como parâmetro apenas o nome deste:
DataTable.WriteXml(
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Easy .net magazine ou para quem possui Créditos DevMedia. Clique aqui para saber mais!

[Este post ainda não foi associado a uma sequência]
Você está em:
canal .net
Publicidade
Vladimir Rech
Space do autor
Formado em Tecnologia em desenvolvimento de software pela UTF/PR.
Desenvolvedor de software.
Palestrante.
Space do autor


0
0
