Array
(
)

Atualizar uma linha em um DataTable

Farinon
   - 09 jul 2009

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:

#Código

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.

Milkidis
   - 17 set 2009

Boa noite, o dataTable é uma coleção, entao você pode atualizar dessa forma:

DataTable[índice].nomeDoAtributo=NOVO VALOR.
drw[0].ValorTotal=NOVO VALOR.