[Resolvido] XML - DataTable
Ola !
Estou no meio de um projeto e dei uma empacada !
Tenho que alimentar um arquivo xml com os pedidos do cliente, ou seja assim que o cliente seleciona o produto em um Grid (alimentado pelo db do cliente), tenho que verificar se o ID cliente existe no xml, caso nao exista ele cria e adiciona o item, igual a um carrinho de compras, e no final quando o cliente finalizar vou gravar no db do cliente o pedido e apagar o cliente do xml.
Criei um datatable e com ele estou populando meu gridview, acontece que só mostra 1 item do nó Itens ! Se eu der um Response.Write ele imprime certo na tela.
Alguem pode dar uma força no codigo abaixo ou sugerir o melhor metodo ?
XML
<?xml version="1.0" encoding="utf-8" ?>
<Pedidos>
<Cliente ID="1">
<Itens>
<Produto>10574</Produto>
<Qt>33</Qt>
</Itens>
<Itens>
<Produto>34174</Produto>
<Qt>44</Qt>
</Itens>
</Cliente>
<Cliente ID="2">
<Itens>
<Produto>99999</Produto>
<Qt>33</Qt>
</Itens>
<Itens>
<Produto>88888</Produto>
<Qt>44</Qt>
</Itens>
</Cliente>
</Pedidos>
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath(@"App_Data\Pedidos.xml"));
DataTable tb_pedidos = new DataTable();
tb_pedidos.Columns.Add(new DataColumn("Produto", typeof(string)));
tb_pedidos.Columns.Add(new DataColumn("Qt", typeof(string)));
DataRow linha = tb_pedidos.NewRow();
XmlNodeList Itens = doc.SelectNodes("/Pedidos/Cliente[@ID='2']/Itens");
foreach (XmlNode a in Itens)
{
for (int i = 0; i <= Itens.Count - 1; i++)
{
linha[0] = a.SelectSingleNode("Produto").InnerText;
linha[1] = a.SelectSingleNode("Qt").InnerText;
//Response.Write(a.SelectSingleNode("Produto").InnerText + "<br />");
}
}
tb_pedidos.Rows.Add(linha);
//PREENCHENDO GRID
GridView1.DataSource = tb_pedidos;
GridView1.DataBind();Discussão (2)
Carregando comentários...