Visual Studio.NET 2005
Olá pessoal, meu nome é Maurício Júnior. Mostrarei como popular um dataset tipado e depois gravar o mesmo
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