Desenvolvendo aplicações utilizando XML

 

Bom pessoal, hoje em dia é comum em ouvir falar de arquivos XML, mas o que são estes arquivos.

 

XML vem de eXtensible Markup Language ou Linguagem padronizada de marcação capaz de descrever diversos tipos de dados, bastante utilizado na Internet para transferência de informações e entre outras funcionalidades.

 

Bom, neste artigo irei demonstrar que os arquivos XML podem ser utilizados como um Banco de Dados, armazenando os dados inseridos em uma aplicação e permitindo realizar pesquisas, alteração e exclusão destes dados.

 

Para isto iremos criar um projeto do tipo Windows Application, conforme imagem da Figura 1.

 

jfdauxmlfig01.jpg 

Figura 1 – Criando um novo projeto do tipo Windows Application.

 

Após ter criado o projeto, iremos preparar nossa Base de Dados, iremos inserir um DataSet.xsd, em Adicionar Novo item -> DataSet, como pode ser visualizado na Figura 2.

 

Este DataSet utilizaremos para criarmos todas as tabelas que nossa aplicação utilizará, podendo criar relações, chaves primárias e outras funcionalidades que possui em um Banco de Dados.

 

jfdauxmlfig02.jpg 

Figura 2 – Adicionando um DataSet.xsd.

 

Ao adicionar o DataSet, aparecerá uma região onde poderemos iniciar a criação das tabelas, sendo que no Toolbox já aparecerá todos os itens que poderão ser adicionados naquela região, conforme pode ser visto na Figura 3.

 

jfdauxmlfig03.jpg 

Figura 3 – Criando as tabelas no DataSet.

 

Chamamos este DataSet de DataSet Tipado, devido o mesmo já possuir o Schema referente à estrutura das tabelas. Sendo assim criaremos todos os objetos para nossa aplicação neste DataSet.

 

Sempre que precisar alterar uma propriedade de coluna recém criada, como por exemplo alterar o tipo da mesma, isso você conseguirá indo na PropertyGrid de propriedades.

 

jfdauxmlfig04.jpg 

Figura 4 – Estrutura do Banco de Dados.

 

Na Figura 4 podemos verificar como ficou a estrutura do nosso Banco de Dados. Definimos as chaves primárias das tabelas, informamos campos que são Auto Incremento (Codfun, CodCargo, CodCid) e ainda fizemos as relações.

 

Sendo assim, vamos prosseguir o desenvolvimento de nossa aplicação, desenvolvendo os forms para que possamos inserir dados nestas tabelas.

 

No final teremos em nossa aplicação quatro forms, um menu principal e um form para cada tabela que criamos, como pode ser visto nas imagens abaixo.

 

jfdauxmlfig05.jpg 

Figura 5 – Tela de cadastro de Cidades.

 

jfdauxmlfig06.jpg 

Figura 6 – Tela de cadastro de Cargos.

 

jfdauxmlfig07.jpg 

Figura 7 – Tela de cadastro de Funcionários.

 

Depois de desenvolvido os forms, será necessário ligar os campos da tela com os campos criados no DataSet.

 

Para os campos TextBox para setar a propriedade de DataBinding é necessário informarmos qual DataSource e qual campo que este estará ligado, conforme Figura 8.

 

jfdauxmlfig08.jpg 

Figura 8 – Setando DataBinding para os controles TextBox

 

Assim será gerado automaticamente no form um DataSet e um BindingSource. Será necessário também inserir um BindingNavigator, que será responsável por inserir, excluir e navegar nos dados. Ao inserir o BindingNavigator é necessário informar qual o BindingSource que este utilizará, que por sinal é o que foi criado automaticamente.

 

Para que possamos gravar e recuperar estes dados será necessário criar três eventos. No Load do Form, será carregado os dados do arquivo XML, ao salvar e excluir os dados, o arquivo será reescrito, conforme Listagem 1.

 

private void saveToolStripButton_Click(object sender, EventArgs e)

{

    BSCidade.EndEdit();

    dataSet11.WriteXml(@"C:\xml.xml");

    MessageBox.Show("Dados salvos com sucesso!");

}

 

private void Cidade_Load(object sender, EventArgs e)

{

      if (System.IO.File.Exists(@"C:\xml.xml"))

         dataSet11.ReadXml(@"C:\xml.xml");

}

 

private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e)

{

       dataSet11.WriteXml(@"C:\xml.xml");

       MessageBox.Show("Dados excluídos com sucesso!");

}

Listagem 1 – Eventos necessários em todos os forms.  

 

Com estes eventos, o form conseguirá recuperar os dados salvos do arquivo, excluir e salvar os dados no arquivo em disco, neste exemplo será salvo em C:\xml.Xml.

 

Como a tabela de Funcionários possui FK com as Tabelas de Cargo e Cidade, precisamos disponibilizar os valores destas tabelas para que o usuário consiga gravar todos os dados do Funcionário.

 

Para isto utilizamos um ComboBox para carregar todos os valores das tabelas Fk´s, mas para isto utilizamos somente configurações, como mostra a Figura 9.

 

jfdauxmlfig09.jpgjfdauxmlfig10.jpg 

Figura 9 – Setando propriedades do ComboBox para funcionar como LookUp

 

Como pode ser visto na figura acima, as propriedades marcadas são necessárias para que o ComboBox possa funcionar como LookUp. Segue a explicação de cada uma:

 

DataSource: BindingSource da tabela FK, carregado com todos os campos.

DisplayMember: Campo da tabela Fk que será apresentado no ComboBox.

ValueMember: Valor que será atribuído no registro corrente quando um item do ComboBox for selecionado.

 

SelectedValue: Campo da tabela corrente que receberá o valor do item do ComboBox selecionado.

 

Após terminar estas configurações para as nossas duas tabelas Fk´s, a nossa aplicação estará completa, permitindo salvar, excluir e recuperar os dados, trabalhando tudo com XML.

 

Espero que tenha sido de grande valia este artigo e até o próximo.