Array
(
)

Somar valores depois de um grid atualizado

Celio Cantalice
   - 10 jul 2012

Salve pessoal,
Sou iniciante em vb.net e de cara me deparei com a seguinte situação:
Preciso dentro de um Grid marcar os checkboxes dos ítems que desejo pagar, dai ao clicar no botão pagar tenho que atualizar o BD(Mysql). a rotina para capturar a id de cada registro eu sei e até a de salvar as alterações em BD mas o problema é que sei fazer isso para um registro apenas e nesse caso serão vários. Ah tudo bem é só colocar a rotina de update do BD num For, certo mas depois preciso somar estes pagamentos e gerar recibo para o mesmo e é ai que me enrolo alguém pode me ajudar?
Do meu entendimento teria que gravar essas ID recuperadas pelo for abaixo:
#Código

For i As Integer = 0 To dvgDoacoes.Rows.Count - 1
            If Not IsDBNull(dvgDoacoes.Rows(i).Cells(4).Value) Then
              dvgDoacoes.CurrentRow.Cells(0).Value.ToString
                rotina de pagamento
            End If
        Next

e inseri-las num array para apos a execução da inserção usar o split para quebrar esse array de Id e somar os valores , mas como fazer isso não sei!
Se estiver errado ou alguem conheça outra forma de fazer isso compartilha ae! eu agradeço muito.
vlw.

Celio Cantalice
   - 12 jul 2012

Poxa ninguém para dar uma luz aqui gente!

Joel Rodrigues
   - 12 jul 2012

Amigo, eu não programo em VB.NET, mas acho que você vai ter que fazer o seguinte: ler todas as linhas do DataGridView e verificar se o checkbox está marcado para cada linha. Caso esteja, você pega o valor desta linha. Veja se este tópico pode lhe ajudar: http://forums.asp.net/p/1554086/3817001.aspx

Celio Cantalice
   - 12 jul 2012

mas eu ja pego o valor de cada linha com o for colocado no codigo acima o problema é que ao atualizar o BD, preciso somar os valores das linhas que estao recebendo baixas(foram selecionadas) e gerar um recibo com isso! ai é que esta o problema porque a cada linha lida seria realizada a baixa mas e depois para somar os valores baixados?

Emanoel Deivison
   - 12 jul 2012

Boa noite,

Porquê não já faz isso no SQL e apenas faz a leitura dos dados e os exibi no grid de forma normal?

Espero ter ajudado!!!

Emanoel Deivison
   - 12 jul 2012

Segue link com exemplo...

http://www.devmedia.com.br/datagrid-com-somatorio-no-rodape-parte-i/1855

PS. O exemplo não é em C#, é em VB.NET, mas imagino que seja simples adaptar seguindo a mesma idéia.

Espero ter ajudado!!

Celio Cantalice
   - 13 jul 2012

blz, vou tentar aqui e ver se dá certo. Eu realmente queria fazer isso na SQL(Uso o mysql) o problema em fazer isso é que como uso for para verificar as linhas marcadas a cada passada do for seria feita uma nova chamada da Store procedure e então a cada chamada apenas uma ID estaria sendo passada dai a dificuldade de fazer a soma.

vou tentar a tarde posto o resultado...

vlw!

Valter Furtado
   - 13 jul 2012

Se você já tem a lista dos IDs, por que não cria um objeto ...
ID
Valor

Daí vc vai ter uma lista de objeto<ID,Valor>, vai fazer o foreach nessa lista inserindo no banco e somando os valores...
List<objeto> lst = listapreenchida;
tipo...
double dValor = lstFrm.Where(w => w.Valor != null).Sum(ww => ww.Valor);

acho que assim você teria o valor total pago.