Lendo e gravando Datatables em arquivos XML

outubro 9, 2008 at 11:56 pm (DOTNETBlog) (, , )

O objeto DataTable do ADO.NET possui dois métodos para fazer essa função: ReadXML e WriteXML, veja nos exemplos abaixo como configurar seus métodos de leitura e gravação sem ter muita dor de cabeça.

Parte 1: Importando o arquivo XML para o DataTable

O método ReadXML lê a partir de um arquivo de origem todos os dados contidos no arquivo e o transforma em linhas dentro de um DataTable. Caso o arquivo XML exista porém não contenha nenhuma linha a coleção de campos não será carregada, portanto é interessante configurar o DataTable antes do carregamento, isto facilita seu trabalho e a posterior inclusão/exclusão de registros.

Configurar uma coluna para ser a PrimaryKey é interessante também. Se você incluir uma coluna na sua tabela como chave e configurá-la como PrimaryKey poderá localizar e acessar rapidamente um único registro e acessar seus valores através do método Find() do objeto DataTable

        //Configura a tabela
        protected DataTable SetupTable()
        {
            DataTable post = new DataTable("MyTable");
            post.Columns.Add("id");
            post.Columns.Add("title");
            post.Columns.Add("description");
            DataColumn[] dc = new DataColumn[1];
            dc[0] = post.Columns["id"];
            post.PrimaryKey = dc;
            return post;
        }

        //Carrega a tabela
        protected DataTable LoadTable()
        {
            DataTable table = SetupTable();
            FileInfo file_info = new FileInfo("MyFile.xml");
            if (file_info.Exists)
                table.ReadXml(_file);
            return table;
        }

Parte 2: incluindo linhas e gravando o DataTable no arquivo XML

Aqui é mostrado, de uma maneira muito simples porém didática, uma forma de adicionar registros na DataTable. O importante é mostrar que a simples chamada do método criado anteriormente, LoadTable(), configura previamente o DataTable, sem se preocupar em se o arquivo contém ou não registros ou quais os nomes das colunas da tabela.

O método WriteXML atualiza o arquivo XML com as novas linhas inseridas

        //adiciona registros e salva o arquivo XML
        protected void AddRecords()
        {
            DataTable table = LoadTable();
            string[] row = { "AAAAAA", "Book 1", "description 1 description 1 description 1" }
            table.Rows.Add(row);
            row = { "BBBBB", "Book 2", "description 2 description 2 description 2" }
            table.Rows.Add(row);
            row = { "CCCCC", "Book 3", "description 3 description 3 description 3" }
            table.Rows.Add(row);
            table.WriteXML("MyFile.xml")
        }

Conclusão

Trabalhar com pequenas quantidades de informação é muito prático utilizando o objeto DataTable e arquivos XML. Note que é fácil fazer pequenos trechos de programa sem preocupação nenhuma com a semântica ou formatação do arquivo XML. O objeto DataTable trata automaticamente essas informações e ainda permite consultas e ordenação utilizando seus métodos nativos.

About these ads

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

%d blogueiros gostam disto: