none
Sumar columna en datagridview c# RRS feed

  • Pregunta

  • Buenas tardes quiero sumar una columna dependiendo de otra columna  por ejemplo si es D que sume todos los D y si es C que sume todos los C y los inserte en un texbox

    mi codigo es el siguiente:


                double valor = 0; 
                double valor1 = 0;
                //Nuevo_Actualizadar();




                if (e.ColumnIndex == colValorv.Index)
                {
                    foreach (System.Windows.Forms.DataGridViewRow row in gridInformacion.Rows)
                    {

                        for (int i = 0; i <= gridInformacion.Rows.Count - 1; i++)
                        {

                            if (row.Cells["coldc"].Value.ToString() != null)
                            {
                                string dcv = (row.Cells["coldc"].Value.ToString());
                                if (dcv == "D")
                                {

                                    valor += Convert.ToDouble(row.Cells["colValorv"].Value.ToString());
                                 
                                }
                                else if (dcv == "C")
                                {
                                    valor1 += Convert.ToDouble(row.Cells["colvalorv"].Value.ToString());
                                }
                            }
                        }
                    }
                    this.txtTD.Text = valor.ToString("###,##0.00"); 
                    this.txtTC.Text = valor1.ToString("###,##0.00"); 
                }

    miércoles, 15 de abril de 2020 16:22

Todas las respuestas

  • Hola Emi19

     

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, vamos a darte seguimiento e investigaremos para buscar la mejor respuesta para ti.

     

    Gracias por usar los foros de MSDN.

     

    Luis Diego Mora

     ____

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

     

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

     

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    miércoles, 15 de abril de 2020 17:20
    Moderador
  • hola

    Podrias hacerlo con linq queda mucho mas simple

    double valodD = gridInformacion.Rows.Cast<DataGridViewRow>()
                                    .Where(r=> Convert.ToString(r.Cells["coldc"].Value) == "D")
                                    .Sum(r=> Convert.ToDouble(r.Cells["colValorv"].Value));
    
    double valodC = gridInformacion.Rows.Cast<DataGridViewRow>()
                                   .Where(r=> Convert.ToString(r.Cells["coldc"].Value) == "C")
                                   .Sum(r=> Convert.ToDouble(r.Cells["colValorv"].Value));
    
    txtTD.Text = valor.ToString("N2"); 
    txtTC.Text = valor1.ToString("N2"); 


    Igual en el codigo que nos muestras no entiendo porque usas un foreach y un for de las Rows del grid, es uno u otro no ambos

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 15 de abril de 2020 18:26