none
Sumar filas de una columna en DataGrid y mostrar en TextBox RRS feed

  • Pregunta

  • Saludos,

    Tengo un formulario que contiene un DataGridView el cual posee una columna llamada "monto".

    Quisiera sumar todos los valores mostrados en dicha columna y que el total sea visualizado en un texbox del mismo formulario.

    Como podria realizar esta operacion?

    domingo, 12 de noviembre de 2017 16:26

Respuestas

  • Si la columna 'monto' contiene valores que pueden ser convertidos perfectamente a un tipo numérico entonces no hay mas que hacer, nota que ya realizo una conversión explicita a un tipo decimal. Pero si estimas que las celdas de la columna 'monto' podrían contener valores alfanuméricos o "celdas vacías" entonces lo mejor será que intentes convertir el valor con el método Decimal.TryParse para controlar la excepción que podría producirse al intentar la conversión.

    "N" es una cadena con formato estándar que representa un valor con dígitos enteros y decimales, considera el separador decimal y de unidades de millar. "2" es un especificador de precisión: dos decimales.

    domingo, 12 de noviembre de 2017 18:29
  • Debes iterar por la colección de filas del control DataGridView y acumular los valores de celda de la columna 'monto', por ejemplo:

    decimal totalMonto = 0;
    foreach (DataGridViewRow row in dataGridView1.Rows)
    	totalMonto += Convert.ToDecimal(row.Cells["monto"].Value);
    //Mostrar resultado
    textBox1.Text = totalMonto.ToString("N2");

    • Propuesto como respuesta Jorge TurradoMVP domingo, 12 de noviembre de 2017 21:41
    • Marcado como respuesta Kelvin E. Cruz martes, 21 de noviembre de 2017 17:55
    domingo, 12 de noviembre de 2017 16:40

Todas las respuestas

  • Debes iterar por la colección de filas del control DataGridView y acumular los valores de celda de la columna 'monto', por ejemplo:

    decimal totalMonto = 0;
    foreach (DataGridViewRow row in dataGridView1.Rows)
    	totalMonto += Convert.ToDecimal(row.Cells["monto"].Value);
    //Mostrar resultado
    textBox1.Text = totalMonto.ToString("N2");

    • Propuesto como respuesta Jorge TurradoMVP domingo, 12 de noviembre de 2017 21:41
    • Marcado como respuesta Kelvin E. Cruz martes, 21 de noviembre de 2017 17:55
    domingo, 12 de noviembre de 2017 16:40
  • dos pregunta mas. En caso de que la columna "monto" sea tipo string deberia realizar algun paso diferente? y por otra parte, que significa "N2"? GRACIAS
    domingo, 12 de noviembre de 2017 17:00
  • Si la columna 'monto' contiene valores que pueden ser convertidos perfectamente a un tipo numérico entonces no hay mas que hacer, nota que ya realizo una conversión explicita a un tipo decimal. Pero si estimas que las celdas de la columna 'monto' podrían contener valores alfanuméricos o "celdas vacías" entonces lo mejor será que intentes convertir el valor con el método Decimal.TryParse para controlar la excepción que podría producirse al intentar la conversión.

    "N" es una cadena con formato estándar que representa un valor con dígitos enteros y decimales, considera el separador decimal y de unidades de millar. "2" es un especificador de precisión: dos decimales.

    domingo, 12 de noviembre de 2017 18:29