Inquiridor
Como carregar os dados de um XML em um dataSet?

Pergunta
-
Olá, estou com um problema no ler os dados de um arquivo XML para um dataSet.
Eu consegui criar o dataSet com todas as tabelas a partir do XSD, então eu quero pegar os dados do XML sem interferir com o schema do dataSet.
Usei essa função:
//Documento de CrystalReport
DanfeModelo danfeModelo = new DanfeModelo();
//DataSet vazio.
DataSet myDS = new DataSet(); //DataSet com todas as tabelas mapeadas
NewDataSet dataSet = new NewDataSet(); //String "caminho" é o local do arquivo xml
public void FazDanfe(string caminho) { dataSet.ReadXml(caminho, XmlReadMode.IgnoreSchema); danfeModelo.SetDataSource(myDS); }Usando o XmlReadMode.IgnoreSchema para apenas inserir os dados.
Mas sempre aparece o erro: "URI inválido: não foi possível determinar o formato do URI."
Já tentei todos os XmlReadMode, nenhum funciona. Se eu usar um dataSet vazio vai dar erro no meu report.Esqueci uma coisa:
O dataSet que eu quero inserir os dados é tipado, é muito grande pra fazer na mão, é da nota fiscal eletrônica, o que eu quero fazer é um gerador de Danfe.
- Editado Nickesm segunda-feira, 3 de junho de 2013 19:33
Todas as Respostas
-
cara aqui tem vários exemplos!
http://msdn.microsoft.com/pt-br/library/fx29c3yd(v=vs.80).aspx
provavelmente deve ser a formatação do seu xml!
Exp. Cara não tem segredo
DataSet dataSet = new DataSet(); DataTable dataTable = new DataTable("table1"); dataTable.Columns.Add("col1", typeof(string)); dataSet.Tables.Add(dataTable); dataSet.ReadXml(@"C:\projetos\Exemplos\webforms\exp_msdn\ASPNETWEBSITE\gridXml.xml", XmlReadMode.IgnoreSchema); gridXml.DataSource = dataSet.Tables[0]; gridXml.DataBind();
xml
<XmlDS> <table1> <col1>Value1</col1> </table1> <table1> <col1>Value2</col1> </table1> </XmlDS>
aspx
<asp:GridView ID="gridXml" runat="server"> </asp:GridView>
abraço!
- Editado Romy Moura segunda-feira, 3 de junho de 2013 19:23
- Sugerido como Resposta Leonardo Lourenço Silva terça-feira, 4 de junho de 2013 02:52
- Não Sugerido como Resposta Nickesm terça-feira, 4 de junho de 2013 16:20
-
cara aqui tem vários exemplos!
http://msdn.microsoft.com/pt-br/library/fx29c3yd(v=vs.80).aspx
provavelmente deve ser a formatação do seu xml!
Exp. Cara não tem segredo
DataSet dataSet = new DataSet(); DataTable dataTable = new DataTable("table1"); dataTable.Columns.Add("col1", typeof(string)); dataSet.Tables.Add(dataTable); dataSet.ReadXml(@"C:\projetos\Exemplos\webforms\exp_msdn\ASPNETWEBSITE\gridXml.xml", XmlReadMode.IgnoreSchema); gridXml.DataSource = dataSet.Tables[0]; gridXml.DataBind();
xml
<XmlDS> <table1> <col1>Value1</col1> </table1> <table1> <col1>Value2</col1> </table1> </XmlDS>
aspx
<asp:GridView ID="gridXml" runat="server"> </asp:GridView>
abraço!
Mas meu dataSet é tipado, não funciona com o "ReadXml" :( -
- Sugerido como Resposta pnet terça-feira, 4 de junho de 2013 23:35