Busca online em todo site:
Heroes

Seja bem vindo(a) Visitante, voc no est logado deseja logar
na comunidade ASPNETi.COM e participar de servios e promoes ? clique aqui.




Título do Artigo

Criando XML a partir de um DATASET tipado – Parte II


Data Publicação: 15/4/2006 11:29:33
Total de visualizações: 4108

comente
 


Visual Studio.NET 2005

 

 

 

Olá pessoal, meu nome é Maurício Júnior. Mostrarei como popular um dataset tipado e depois gravar o mesmo em XML. Antes de tudo, para quem quiser acompanhar o desde a parte I, o mesmo pode ser visto no site www.aspneti.com ou www.aspneti.com.br.

 

Requisitos:

- Visual Studio.NET 2005;

- Ler a parte I;

- Básico de XML

 

Depois de criado o dataset, é necessário preencher o mesmo depois de fazer o select no banco de dados. É de mesma forma preencher um dataset tipado e um dataset. Faço o select, conecto no banco de dados e em seguida uso o dataadapter em seguida faço o fill para preencher o xsd. (1.1 – Parte II)

 

 

//pegando conexao

GetConnection (StringdeConexao);

 

try

{

      //gerando select

      StringBuilder sSql = GetSeletect();       

 

      SqlCommand cmd = new SqlCommand(sSql.ToString(), conn);

      cmd.CommandTimeout = 240;

 

 

 

      SqlDataAdapter dtAdapter = new SqlDataAdapter(cmd);

 

      //preenchendo o dataset tipado

      FechamentoDs fech = new FechamentoDs();

      dtAdapter.Fill(fech, "FechProcesso");

 

      //abrindo a conexao

      conn.Open();

      return fechamentoDS;

}

catch (Exception ex)

{

       //gerando erro no event log

       EventLog log = new EventLog();

       log.Source = "Service Primeiro";

       log.WriteEntry("Classe: Dall Service \r\n" +

       "Método: GetSelectDadosCooperativa \r\n" +

       "Mensagem de erro: " + ex.Message + "\r\n \r\n" +

       "StatTrace: " + ex.StackTrace, EventLogEntryType.Error);

 

       throw ex;

}

finally

{

    conn.Close();

}

Referência: 1.1 – Parte II

 

 

 

Explicação:

 

Antes de tudo, o código está todo comentado para melhor entendimento. Pego a conexão do meu banco de dados, logo em seguida gero o meu select usando o StringBuilder.

Uso o SqlCommando passando o select e conexão, atribuo o valor do timeout para 240, gero uma variável do tipo SqlDataAdapter com o nome dtAdapter passando como parâmetro o cmd do SqlCommand criado anteriormente.

 

No meu caso, o nome do dataset tipado é FechamentoDS, ou seja, lá possui todos os campos iguais a minha tabela no banco de dados.

 

 

      //preenchendo o dataset tipado

      FechamentoDs fech = new FechamentoDs();

      dtAdapter.Fill(fech, "FechProcesso");

 

Referência: 1.2 Parte II

 

Na referência 1.2, crio uma nova instância do meu dataset, e preencho em seguida usando o dtAdapter.Fill, como parâmetro, passo a variável e em seguida coloco o nome entre aspas “FechProcesso”.

Com isso, preenchi o dataset tipado e posso retorná-lo.

 

Depois do mesmo preenchido é hora de criar um xml e gravar em um local do seu servidor ou computador.

 

Para gerar um xml com os dados preenchidos, criei um método que recebe como parâmetro o dataset tipado e com isso é gerado de uma forma dinâmica. (1.3 – Parte II)

 

 

 

 

public void GeraXMLDocument(FechamentoDs dtSet)

        {

            try

            {

                XmlDocument xml = new XmlDocument();

                xml.LoadXml(dtSet.GetXml());

 

 

                xml.Save(@ConfigurationSettings.AppSettings["CaminhoArquivo"]+"nome_"+DateTime.Now.Date.ToString("dd-MM-yyyy")+"_.xml");

 

            }

            catch (Exception ex)

            {

                //registra o erro no event log

                EventLog log = new EventLog();

                log.Source = "Service Primeiro";

                log.WriteEntry("Classe: Dall Service \r\n" +

              "Método: GeraXMLDocument \r\n" +

              "Mensagem de erro: " + ex.Message + "\r\n \r\n" +

              "StatTrace: " + ex.StackTrace, ventLogEntryType.Error);

 

                throw ex;

            }

        }

Referência: 1.3 – Parte II

 

Explicação:

 

Antes de tudo, fiz um método para executar e preencher um xml e salvando no servidor. Esse método chama-se GeraXMLDocument. Dentro do bloco try, gero um novo objeto chamado xml que é do tipo XMLDocument. A segunda linha, preencho o meu objeto xml usando o método LoadXml passando como parâmetro dtSet.GetXml(). Depois disso, basta salvar o xml na máquina, no meu caso, configurei no web.config o caminho do arquivo. Para criar o nome do arquivo, coloquei nome_data_.xml, ou seja, todo o arquivo terá o nome concatenado com a data do dia. (1.4 – Parte II).

 

 

xml.Save(@ConfigurationSettings.AppSettings["CaminhoArquivo"]+"nome_"+DateTime.Now.Date.ToString("dd-MM-yyyy")+"_.xml");

 

Referência: 1.4 – Parte II

 

Esse comando @configurationSettings é normal, estou pegando apenas o valor de minha variável dentro do web.config.(1.5 – Parte II)

 

 

<appSettings>

                   <add key="ConnectionString" value="UGVyc2lzdCBTZWN1cml0eSBJbmZvPUZhbHNlOyBQYXNzd29yZD1zYXB3ZDtVc2VyIElEPXNhO0luaXRpYWwgQ2F0YWxvZz1zcWxhZG07RGF0YSBTb3VyY2U9c3RmLWFuZHJlemE="/>

    <add key="CaminhoArquivo" value="c:\" />

</appSettings>

Referência: 1.5 – Parte II

 

 

Dentro do web.config está a key CaminhoArquivo onde o valor é o c:\. Você pode colocar qualquer caminho, ou seja, pode ser mudado de pasta sem nem mesmo recompilar a aplicação. Não posso esquecer de que estou concatenando o nome como a data do dia e depois o nome da extensão.XML.

 

O resultado do xml gerado pode ser visto na referência (1.5 – Parte II).

 

 

Referência: 1.5 – Parte II

 

 

Com o xml pronto, qualquer aplicação pode ler ou utilizá-la. Dessa forma fica um padrão estabelecido para quem quiser usar suas referências.

Dica: dentro de cada classe estou utilizando dentro do bloco catch uma forma de registrar o erro dentro do eventLog.

 

Bom, fico por aqui.

Espero ter ajudado alguma coisa...

 

Mauricio Junior

www.ascompras.com

www.aspneti.com

mauricio@ascompras.com

 



Total de visualizações: 4108
voltar   comente  subir

Autor:


Por:Mauricio Junior
Maurício Júnior
Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; .
Tenho 27 anos e possuo sete livros publicados pela editora Ciência Moderna no ano de 2009. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A. Blog:  blog.mauriciojunior.orgSite pessoal  www.mauriciojunior.org


Comentários:

Comentado por: Marcio Muniz - 23/5/2009 0:00:00
Mauricio, apesar das propagandas terem cortado grande parte do teu texto, fiquei meio confuso com o que vc tentou mostrar.

Acho que vc usou o caminho mais complicado para atingir o objetivo.

Comente (dê sua opinião): VOCÊ PRECISA ESTAR LOGADO

Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

Orientação a Objetos com Visual Studio.NET (parte 2)
Mudar de MasterPage em Tempo de Execução
IsDecimal
Novo Firefox 3.0 - o chamado Minefield
Alongar é preciso
Saiba ganhar dinheiro navegando na internet
Máscara valor que funciona
WebService - Desenvolvimento Parte 1
Forum utilizando VS 2005 e Ajax
QR Code com ASP.NET
Vídeo - Teste do Windows 7 RC
Ophone The Microsoft - Vídeo
Visual SourceSafe – Série 6
Framework SkyMenu
Vírus - Link com Vírus
Dica de Segurança no Arquivo de Configuração - Web / App .config
Usando Split no C#
Gerando word com Visual Studio.NET 2005
Multimídia C#.NET
Padrão de Codificação
Virus: Provocando sua curiosidade
Resources e Internacionalização usando Visual Studio.NET 2005 (Parte II)
Educação no Brasil
Criando Alias no Pacote
Nova geração HTML
Innovation Days
Formatando String rapidamente
Ext JS
Retirar Tag HTML dos campos utilizando expressão
Mobilidade e Aplicativos Mobile
Visual SourceSafe - Série 4
Novidade: Nomeação MVP Microsoft
Vídeo: Windows Phone com Windows Mobile 7
Convite de Lançamento do Windows 7
Chrome - não reconhecimento...

Publicidade:

[sumir] [aparecer]
DEVMEDIA




Informaes Online:

Usurios Online: 793
Artigos:  663
Vdeos:  47
PodCast's:  31
Frum:  3098
Empregos:  1226
Usurios Cadastrados: 5794

Categoria de Artigos

Vdeos

Enquete - D sua opinio

 Os podcasts tem sido proveitoso pra você?

 

Colaboradores

Foto Autor autor: Mauricio Junior   
publicou 382 artigo(s).
Foto Autor autor: Júlio Battisti   
publicou 51 artigo(s).
Foto Autor autor: Fabio Galante Mans   
publicou 28 artigo(s).
Foto Autor autor: Kleber Becerra   
publicou 10 artigo(s).
Foto Autor autor: Ramon Durães   
publicou 6 artigo(s).
Foto Autor autor: Ebenézer de Souza   
publicou 5 artigo(s).
Foto Autor autor: Fabio Aguiar   
publicou 4 artigo(s).
NETITC