Tenho o seguinte código em um programa que eu fiz (segue abaixo):
Basicamente, o que ele faz é criar dois arquivos XML. No final do código preciso que seja carregado em um DataGridView os dados gerados dentro do segundo arquivo XML.
Ele até carrega as colunas bonitinho, mas não carrega os dados do meu arquivo XML. Não sei se estou gerando o arquivo XML errado ou algo assim. O arquivo XML gerado abre pelo XMLNotePad, o que significa que ele é um arquivo XML valido.
Alguém poderia me dar uma luz?
Private Sub btnCria_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCria.Click
'btnGrava.Enabled = True
Try
'Cria o arquivo XML contendo os dados da estrutura
Dim writer As New XmlTextWriter(lblCaminhoProjeto.Text, Nothing)
'Cria a inicialização do arquivo XML
writer.WriteStartDocument()
'Seta os comentários das linhas iniciais
writer.WriteComment("Arquivo contendo dados gerais do projeto de fundações")
writer.WriteComment("Arquivo gerado pelo programa SCE-BARONI.")
'Cria o elemento raiz
writer.WriteStartElement("GeneralidadesEstaqueamento")
'Cria o elemento com os dados gerais da estrutura
writer.WriteStartElement("DadosGerais")
'Preenche com os dados gerais informados
writer.WriteElementString("NomeObra", txtNomeObra.Text)
writer.WriteElementString("Observacoes", rtbObservacoes.Text)
writer.WriteElementString("Data", dtpData.Text)
'Encerra o elemento DadosGerais
writer.WriteEndElement()
'Cria o elemento com os dados dos arquivos
writer.WriteStartElement("Arquivos")
'Cria vinculo com o arquivo de projeto
writer.WriteElementString("Projeto", lblCaminhoProjeto.Text)
'Cria, caso selecionado pelo usuário, o vínculo com o memorial de cálculos
If (lblLSimNao.Text = "Sim") Then
writer.WriteElementString("Calculo", lblCaminhoFolhaCalculo.Text)
Else
writer.WriteElementString("Calculo", "NS")
End If
'Cria elemento contendo o caminho dos dados geométricos da estrutura
writer.WriteElementString("Geometria", "C:\Arquivos de programas\SCE-BARONI\Estruturas\est" + frmNovo.txtNomeProjeto.Text + ".xml")
'Encerra elemento Arquivos
writer.WriteEndElement()
'Encerra o elemento raiz
writer.WriteEndElement()
'Escreve o XML para o arquivo e fecha o objeto escritor
writer.Close()
'Cria XML com os dados geométricos do estaqueamento
Dim writerEstaq As New XmlTextWriter("C:\Arquivos de programas\SCE-BARONI\Estruturas\est" + frmNovo.txtNomeProjeto.Text + ".xml", Nothing)
'Cria inicialização do arquivo XML
writerEstaq.WriteStartDocument()
'Seta os comentários das linhas iniciais
writerEstaq.WriteComment("Arquivo contendo dados geométricos do projeto de fundações")
writerEstaq.WriteComment("Arquivo gerado pelo programa SCE-BARONI.")
'Cria elemento geral dos estaqueamentos
writerEstaq.WriteStartElement("Estacas")
'Cria atributo com o tipo de cálculo selecionado para a fundação
'writerEstaq.WriteAttributeString("MetodoCalculo", "Schiel")
'Cria tantos elementos de estacas quanto informado pelo usuário
'Declara a variável do contador
Dim x, y As Integer
x = Convert.ToInt64(txtQtdEstacas.Text)
y = 0
'Cria os elementos
While y < x
Dim Ident As Integer
Ident = y + 1
'Cria elemento com o nome da estaca em questão
writerEstaq.WriteStartElement("E" + Ident.ToString())
'Seta atributos da estaca em questão
writerEstaq.WriteElementString("ID", "E" + Ident.ToString())
writerEstaq.WriteElementString("X", txtAlturaCoroamento.Text)
writerEstaq.WriteElementString("Y", "0")
writerEstaq.WriteElementString("Z", "0")
writerEstaq.WriteElementString("A", "0")
writerEstaq.WriteElementString("W", "0")
writerEstaq.WriteElementString("S", "1")
'Encerra elemento da estaca em questão
writerEstaq.WriteEndElement()
'Incrementa contador
y += 1
End While
'Encerra elemento Estacas
writerEstaq.WriteEndElement()
'Escreve o XML para o arquivo e fecha o objeto escritor
writerEstaq.Close()
MsgBox("Arquivos gerados com sucesso.")
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, "Erro!")
End Try
'Adiciona para o dgvEstacas os dados da estrutura criada
dtGeometria = New DataTable("Estacas")
dtGeometria.Columns.Add("ID")
dtGeometria.Columns.Add("X")
dtGeometria.Columns.Add("Y")
dtGeometria.Columns.Add("Z")
dtGeometria.Columns.Add("A")
dtGeometria.Columns.Add("W")
dtGeometria.Columns.Add("S")
dtGeometria.ReadXml("C:\Arquivos de programas\SCE-BARONI\Estruturas\est" + frmNovo.txtNomeProjeto.Text + ".xml")
dgvEstacas.DataSource = dtGeometria
dgvEstacas.Refresh()
Pergunta
hencker
Bom dia pessoal,
Tenho o seguinte código em um programa que eu fiz (segue abaixo):
Basicamente, o que ele faz é criar dois arquivos XML. No final do código preciso que seja carregado em um DataGridView os dados gerados dentro do segundo arquivo XML.
Ele até carrega as colunas bonitinho, mas não carrega os dados do meu arquivo XML. Não sei se estou gerando o arquivo XML errado ou algo assim. O arquivo XML gerado abre pelo XMLNotePad, o que significa que ele é um arquivo XML valido.
Alguém poderia me dar uma luz?
Private Sub btnCria_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCria.Click 'btnGrava.Enabled = True Try 'Cria o arquivo XML contendo os dados da estrutura Dim writer As New XmlTextWriter(lblCaminhoProjeto.Text, Nothing) 'Cria a inicialização do arquivo XML writer.WriteStartDocument() 'Seta os comentários das linhas iniciais writer.WriteComment("Arquivo contendo dados gerais do projeto de fundações") writer.WriteComment("Arquivo gerado pelo programa SCE-BARONI.") 'Cria o elemento raiz writer.WriteStartElement("GeneralidadesEstaqueamento") 'Cria o elemento com os dados gerais da estrutura writer.WriteStartElement("DadosGerais") 'Preenche com os dados gerais informados writer.WriteElementString("NomeObra", txtNomeObra.Text) writer.WriteElementString("Observacoes", rtbObservacoes.Text) writer.WriteElementString("Data", dtpData.Text) 'Encerra o elemento DadosGerais writer.WriteEndElement() 'Cria o elemento com os dados dos arquivos writer.WriteStartElement("Arquivos") 'Cria vinculo com o arquivo de projeto writer.WriteElementString("Projeto", lblCaminhoProjeto.Text) 'Cria, caso selecionado pelo usuário, o vínculo com o memorial de cálculos If (lblLSimNao.Text = "Sim") Then writer.WriteElementString("Calculo", lblCaminhoFolhaCalculo.Text) Else writer.WriteElementString("Calculo", "NS") End If 'Cria elemento contendo o caminho dos dados geométricos da estrutura writer.WriteElementString("Geometria", "C:\Arquivos de programas\SCE-BARONI\Estruturas\est" + frmNovo.txtNomeProjeto.Text + ".xml") 'Encerra elemento Arquivos writer.WriteEndElement() 'Encerra o elemento raiz writer.WriteEndElement() 'Escreve o XML para o arquivo e fecha o objeto escritor writer.Close() 'Cria XML com os dados geométricos do estaqueamento Dim writerEstaq As New XmlTextWriter("C:\Arquivos de programas\SCE-BARONI\Estruturas\est" + frmNovo.txtNomeProjeto.Text + ".xml", Nothing) 'Cria inicialização do arquivo XML writerEstaq.WriteStartDocument() 'Seta os comentários das linhas iniciais writerEstaq.WriteComment("Arquivo contendo dados geométricos do projeto de fundações") writerEstaq.WriteComment("Arquivo gerado pelo programa SCE-BARONI.") 'Cria elemento geral dos estaqueamentos writerEstaq.WriteStartElement("Estacas") 'Cria atributo com o tipo de cálculo selecionado para a fundação 'writerEstaq.WriteAttributeString("MetodoCalculo", "Schiel") 'Cria tantos elementos de estacas quanto informado pelo usuário 'Declara a variável do contador Dim x, y As Integer x = Convert.ToInt64(txtQtdEstacas.Text) y = 0 'Cria os elementos While y < x Dim Ident As Integer Ident = y + 1 'Cria elemento com o nome da estaca em questão writerEstaq.WriteStartElement("E" + Ident.ToString()) 'Seta atributos da estaca em questão writerEstaq.WriteElementString("ID", "E" + Ident.ToString()) writerEstaq.WriteElementString("X", txtAlturaCoroamento.Text) writerEstaq.WriteElementString("Y", "0") writerEstaq.WriteElementString("Z", "0") writerEstaq.WriteElementString("A", "0") writerEstaq.WriteElementString("W", "0") writerEstaq.WriteElementString("S", "1") 'Encerra elemento da estaca em questão writerEstaq.WriteEndElement() 'Incrementa contador y += 1 End While 'Encerra elemento Estacas writerEstaq.WriteEndElement() 'Escreve o XML para o arquivo e fecha o objeto escritor writerEstaq.Close() MsgBox("Arquivos gerados com sucesso.") Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "Erro!") End Try 'Adiciona para o dgvEstacas os dados da estrutura criada dtGeometria = New DataTable("Estacas") dtGeometria.Columns.Add("ID") dtGeometria.Columns.Add("X") dtGeometria.Columns.Add("Y") dtGeometria.Columns.Add("Z") dtGeometria.Columns.Add("A") dtGeometria.Columns.Add("W") dtGeometria.Columns.Add("S") dtGeometria.ReadXml("C:\Arquivos de programas\SCE-BARONI\Estruturas\est" + frmNovo.txtNomeProjeto.Text + ".xml") dgvEstacas.DataSource = dtGeometria dgvEstacas.Refresh()Editado por henckerLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.