Suma columna en datagridview

Publicado en 'Programación' por joel094, 24 Set 2015.





  1. joel094

    joel094 Miembro frecuente

    Registro:
    14 Oct 2012
    Mensajes:
    213
    Likes:
    7




    Buenas tardes a todos tengo un problema con una suma de columna de un determinado datagridview pero con un par condiciones que cierta columna diga "GE" y la segunda y mas difícil es que solo en sume los primeros 23 elementos que cumplan con la anterior condición yo uso generalmente este código de suma pero esto suma todo lo que diga GE necesito solo los primeros 23.

    Código:
    int lineas = dataGridView3.Rows.Count;
                double suma = 0.00;
                foreach (DataGridViewRow row in dataGridView3.Rows)
                    for (int i = 0; i < lineas; i++)
                    {
                        if (Convert.ToString(this.dataGridView3.CurrentRow.Cells[6].Value) == "GE")
                        {
                            suma += Convert.ToDouble(row.Cells[5].Value);
                        }
                    }
                MessageBox.Show("" + Convert.ToString(suma) + "");
     


  2. Raigen

    Raigen Miembro de bronce

    Registro:
    13 Jul 2015
    Mensajes:
    1,126
    Likes:
    149
    tienes que decir que solo tome los 23 primero caracteres, en tu código le estas poniendo que sume todo
     
  3. gnox

    gnox Miembro maestro

    Registro:
    3 Ene 2013
    Mensajes:
    792
    Likes:
    252
    segundo for esta demás a mi opinión, si capturas row en el foreach usalo, el GE solo lo obtenías de una fila no de cada y resumabas todo.
    Código:
    double suma = 0.00;
    int cont =0;
    foreach (DataGridViewRow row in dataGridView3.Rows)
          if (Convert.ToString(row.Cells[6].Value) == "GE")
          {
              suma += Convert.ToDouble(row.Cells[5].Value);
              cont++;
              if (cont >= 23) {
                break;
              }
          }
    }
    MessageBox.Show("" + Convert.ToString(suma) + "");
    
     
Etiquetas: