none
Sumar una columna (DataGrid)y mostrar resultado en un label RRS feed

  • Pregunta

  • Bueno tengo este problema de no saber como sumar una columna de un Datagrid y mostrar el resultado en un label

    solamente quiero mostrar el total de la columna Precio en el label3, gracias de antemano

    jueves, 1 de diciembre de 2011 20:20

Respuestas

  • hola

    int suma = 0
    
    foreach(DataGridViewRow row in DataGridView1.Rows){
    
         int precio = 0;
    
         Int32.TryParse(Convert.ToString(row.Cells["Precio"].Value), out precio);
    
         suma += precio;
    
    }
    
    label3.Text = Convert.ToString(suma);
    


    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 1 de diciembre de 2011 20:32

Todas las respuestas

  • Hola,

    Entiendo que el dataSource de tu DataGridView es un DataTable, te paso un ejemplo con linq

     

    DataTable t = this.DataGridView.DataSource as DataTable;

    this.label3.Text =  t.AsEnumerable().Sum((row) => row.Field<int>("Precio")).ToString();

     

    Saludos,


    phurtado
    jueves, 1 de diciembre de 2011 20:27
    Moderador
  • hola

    int suma = 0
    
    foreach(DataGridViewRow row in DataGridView1.Rows){
    
         int precio = 0;
    
         Int32.TryParse(Convert.ToString(row.Cells["Precio"].Value), out precio);
    
         suma += precio;
    
    }
    
    label3.Text = Convert.ToString(suma);
    


    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 1 de diciembre de 2011 20:32
  • Muchas gracias Leandro me funciono perfecto :)
    jueves, 1 de diciembre de 2011 20:37
  • Hola ReviveDx,

    Atento que lo que ha pasado Leandro y lo que he pasado yo es exactamente lo mismo.

    Esta instruccion Sum((row) => row.Field<int>("Precio")). hace loo mismo que esto.

     

    nt suma = 0
    
    foreach(DataGridViewRow row in DataGridView1.Rows){
    
         int precio = 0;
    
         Int32.TryParse(Convert.ToString(row.Cells["Precio"].Value), out precio);
    
         suma += precio;
    
    }
    


    Con la instruccion de Leandro estás utilizando c# 2.0 con lo que yo te he pasado utilizas c# 3.0 y ya vamos por c# 5.0

    Mira esta tabla de comparación de la evolución de c#, que una consulta en el foro no te sirva solo para resolver un problema sino para aprender diferentes alternativas, ojo que no digo que lo ha hecho Leandro este mal :)

    http://en.wikipedia.org/wiki/C_Sharp_(programming_language)

    Saludos,


    phurtado
    jueves, 1 de diciembre de 2011 20:43
    Moderador