Atualizar uma linha em um DataTable
09/07/2009
0
Oi Pessoal! preciso fazer uma consulta de todos os produtos que foram vendidos de tal a tal dia, e no final deve me restar uma tabela com os totais de cada produto somado.
exemplo... tenho uma tabela assim:
prod / qtdade / valunitario / valtotal
007 / 15 / 10 / 150
009 / 2 / 10 / 20
007 / 10 / 10 / 100
e o que preciso ter eh algo como:
prod / qtdade / valunitario / valtotal
007 / 25 / 10 / 250 (somado cada vez que o produto aparece...)
009 / 2 / 10 / 20
Creio que ate a metade ja fiz... fiz a consulta para ver todos os itens vendidos e salvei em um DataTable chamado ´dt´...
e criei um novo chamado dtfinal ate entao vazio, mas com a estrutura igual a do dt...
Agora minha ideia é percorrer o dt e ir vendo se esse codigo de produto ja existe em dtfinal.
se existir ele soma a quantidade e o valor total ao da linha que ja existe em dtfinal e atualiza... senao ele cria uma nova linha com os mesmos valores de dt...
Nao sei se consegui me fazer entender..
Lendo bastante na internet consegui chegar a algo como esse loop:
sera que me expressei direito? alguem sabe como faço para atualizar uma linha especifica em um DataTable?
qualquer ajuda eh de extrema importancia!
Abraçao
T.
exemplo... tenho uma tabela assim:
prod / qtdade / valunitario / valtotal
007 / 15 / 10 / 150
009 / 2 / 10 / 20
007 / 10 / 10 / 100
e o que preciso ter eh algo como:
prod / qtdade / valunitario / valtotal
007 / 25 / 10 / 250 (somado cada vez que o produto aparece...)
009 / 2 / 10 / 20
Creio que ate a metade ja fiz... fiz a consulta para ver todos os itens vendidos e salvei em um DataTable chamado ´dt´...
e criei um novo chamado dtfinal ate entao vazio, mas com a estrutura igual a do dt...
Agora minha ideia é percorrer o dt e ir vendo se esse codigo de produto ja existe em dtfinal.
se existir ele soma a quantidade e o valor total ao da linha que ja existe em dtfinal e atualiza... senao ele cria uma nova linha com os mesmos valores de dt...
Nao sei se consegui me fazer entender..
Lendo bastante na internet consegui chegar a algo como esse loop:
DataView dtView = new DataView(dt); DataRowView drView; for (int i = 0; i < dtView.Count; i++) { drView = dtView; DataRow[] drw = dtfinal.Rows.Find("00001"); if (drw != null ) // Não é nulo = encontrei { // Código para encontrei..... float valornobd = (float)drView["VL_TOTAL"]; drw[0]["ValorTotal"]= (float)drw[0]["ValorTotal"] + valornobd; (aqui esta minha dificuldade... nao consigo atualizar o dtfinal com o valor) } else { // Cria uma nova linha, aqui nao tenho problemas eu acho... }
sera que me expressei direito? alguem sabe como faço para atualizar uma linha especifica em um DataTable?
qualquer ajuda eh de extrema importancia!
Abraçao
T.
Farinon
Curtir tópico
+ 0
Responder
Posts
17/09/2009
Milkidis
Boa noite, o dataTable é uma coleção, entao você pode atualizar dessa forma:
DataTable[índice].nomeDoAtributo=NOVO VALOR.
drw[0].ValorTotal=NOVO VALOR.
DataTable[índice].nomeDoAtributo=NOVO VALOR.
drw[0].ValorTotal=NOVO VALOR.
Responder
Clique aqui para fazer login e interagir na Comunidade :)