none
Fazer Soma DataGridView C# RRS feed

  • Pergunta

  • Como fazer a Soma de uma coluna Inteiro

    Por exemplo: Eu tenho 25, produtos no meu DataGrid, assim já foi feito um Multiplicação assim Quantidade * Preço Unitario

    e eu queria pegar o Valor total de todos os Itens é fazer uma Subtração para da o Valor total da Compra .

    Alguém pode me ajudar?
    Fico no aguardo, agradeço desde de já.

    quinta-feira, 20 de setembro de 2012 14:21

Respostas

  • Ahhh ta, agora eu entendi....

    decimal valor = 0;
    
    foreach (DataGridViewCell cell in row.Cells)
    {
      if (cell.ColumnIndex == 5)
      {
        if (cell.FormattedValue != string.Empty)    {
          valor += Convert.ToDecimal(cell.Value);       
            
        } 
      }
    } 
    
    TxtPrecoTotal.Text = valor; 

    Desculpa cara, eu acho que tava mais confundindo você do que ajudando, mas sem dúvida essa linha deve ficar fora do foreach:

    TxtPrecoTotal.Text = valor; 


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    • Marcado como Resposta Kennedy Alvino sexta-feira, 21 de setembro de 2012 13:43
    sexta-feira, 21 de setembro de 2012 13:37

Todas as Respostas

  • E ae tuca, blz?

    Para varrer um DataGrid e buscar o valor de uma coluna você pode fazer desta forma:

    int valor = 0;            
    
    foreach (DataGridViewRow row in dataGridView1.Rows)            
    {
         foreach (DataGridViewCell cell in row.Cells)                
           { 
             if (cell.ColumnIndex == 1) 
              {                 
                if (cell.FormattedValue != String.Empty)                     
                  valor += Convert.ToInt32(cell.Value);                    
              }
            }            
    }


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    quinta-feira, 20 de setembro de 2012 15:56
  • Isto buscar somente o valor do campo, eu quero saber o total da coluna toda entende?
    quinta-feira, 20 de setembro de 2012 16:40
  • Você diz buscar uma coluna em todas as linhas da grid e somar tudo?

    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    quinta-feira, 20 de setembro de 2012 16:47
  • Sim , isto mesmo .
    quinta-feira, 20 de setembro de 2012 17:39
  • Mas é isto que esta fazendo:

    valor += Convert.ToInt32(cell.Value);           

    Esta percorrendo cada row e somando o valor da coluna.

    Não sei se existe algo automático para fazer isto, pelo menos eu nunca achei.


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS


    quinta-feira, 20 de setembro de 2012 17:41
  • Cara é isto mesmo o códgio mais está dando um erro agora estou usando o codigo que você me passou.

    int valor = 0;
    
                        foreach (DataGridViewRow row in DgCaixa.Rows)
                        {
                            foreach (DataGridViewCell cell in row.Cells)
                            {
                                if (cell.ColumnIndex == 5)
                                {
                                    if (cell.FormattedValue != string.Empty)
                                        valor += Convert.ToInt32(cell.Value);
                                }
                                TxtPrecoTotal.Text = Convert.ToInt32(cell.Value).ToString();
                            }
                        }

    Mais precisava acrescentar isso por isso não estava funcionando

      TxtPrecoTotal.Text = Convert.ToInt32(cell.Value).ToString();

    Agora da este erro.

    Valor era muito grande ou muito pequeno para Int32.

    se eu coloco somente 2 itens funfa normal so que se é mais de 3 ai da pau, coloquei Int64 deu erro do mesmo jeito.


    quinta-feira, 20 de setembro de 2012 19:57
  • Cara, acho que você não precisa converter para Int nesta parte:

    TxtPrecoTotal.Text = cell.Value;

    O erro está acontecendo nesta parte?

    valor += Convert.ToInt32(cell.Value);

    Poderia postar a descrição da Exception?


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    quinta-feira, 20 de setembro de 2012 20:02
  • Máquina: KENNEDY-PC

     Domínio: Kennedy-PC

     Usuário do Domínio: Kennedy

     Erro:

    System.FormatException: Seqüência de entrada não estava em um formato incorreto.
       em System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
       em System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
       em System.String.System.IConvertible.ToInt32(IFormatProvider provider)
       em System.Convert.ToInt32(Object value)
       em Camada_Apresentacao.FrmCaixa.TxtCodigoProduto_KeyPress(Object sender, KeyPressEventArgs e) na C:\Users\Kennedy\Desktop\Deposito\Camda_Apresentacao\FrmCaixa.cs:linha 601


    Linha 601 é está parte.

    valor += Convert.ToInt32(cell.Value);



    sexta-feira, 21 de setembro de 2012 11:37
  • Cara eu coloque decimal no lugar do int

    mais tipo ele me da um resultador so que não a soma da coluna intero so da utima Row do meu DataGrid

    sexta-feira, 21 de setembro de 2012 11:41
  • Olha como que fica não da erro mais tambem não faz a Subtração da minha ultima coluna, pega o resultado da minha ultima Row

    sexta-feira, 21 de setembro de 2012 13:17
  • Ahhh ta, agora eu entendi....

    decimal valor = 0;
    
    foreach (DataGridViewCell cell in row.Cells)
    {
      if (cell.ColumnIndex == 5)
      {
        if (cell.FormattedValue != string.Empty)    {
          valor += Convert.ToDecimal(cell.Value);       
            
        } 
      }
    } 
    
    TxtPrecoTotal.Text = valor; 

    Desculpa cara, eu acho que tava mais confundindo você do que ajudando, mas sem dúvida essa linha deve ficar fora do foreach:

    TxtPrecoTotal.Text = valor; 


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    • Marcado como Resposta Kennedy Alvino sexta-feira, 21 de setembro de 2012 13:43
    sexta-feira, 21 de setembro de 2012 13:37
  • Aeee Cara deu certo, OBRIGADÃO TUCA.

    Ajudou demais.

    sexta-feira, 21 de setembro de 2012 13:43
  • rsrsrssrs TUCA? ehhhhh veio sai pra la rsrsrsrsrs

    Eu sou tuco pow!!!!! rsrsrsrs, que bom que funcionou cara.....


    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCTS

    sexta-feira, 21 de setembro de 2012 13:46
  • Cara me da um help tem como vc mandar o codigo dessa tela pra mim ou uma copia do seu programa, to fazendo meu TCC, presiso fazer uma tela similar a sua mais n to dando conta n achu nada na net pra me ajudar, se vc me ajudar vou ficar muito grato a vc.
    segunda-feira, 8 de outubro de 2012 19:38
  • E ae tuco, blz? Do que você ta precisando exatamente? A mesma coisa? Somar dados de um coluna?

    Se a resposta foi útil por favor qualifique! Janderson Candido de Mattos - MCPD

    segunda-feira, 8 de outubro de 2012 19:41
  • sim cara tenho uma tela muito fulera de vendas queria fazer ela parece com a da imagem q apareceu ai em cima

    olha como ta

    eu queria mais ou menos assim

    tipo quero um textbox onde eu digite o cogido do produto e ele exiba o nome e o valor em outros text box a baixo dele e insira esse produto no datagrid e outro textbox q eu coloque a quantidade e ele insira no data grid, e um botão pra ele cair tra segunda linha do data grid pra q possa add mais produtos na venda. Depois um textbox q mostre o total de tudo e uma pra inserir o valor recebido e q mostre o troco.

    se for possivel me ajudar ficaria muito satisfeito pela ajuda desde ja obrigado.

    quarta-feira, 10 de outubro de 2012 16:35
  • sim cara tenho uma tela muito fulera de vendas queria fazer ela parece com a da imagem q apareceu ai em cima

    olha como ta

    eu queria mais ou menos assim

    tipo quero um textbox onde eu digite o cogido do produto e ele exiba o nome e o valor em outros text box a baixo dele e insira esse produto no datagrid e outro textbox q eu coloque a quantidade e ele insira no data grid, e um botão pra ele cair tra segunda linha do data grid pra q possa add mais produtos na venda. Depois um textbox q mostre o total de tudo e uma pra inserir o valor recebido e q mostre o troco.

    se for possivel me ajudar ficaria muito satisfeito pela ajuda desde ja obrigado.

    quarta-feira, 10 de outubro de 2012 19:40