none
Como puedo sumar columna en un DatagridView RRS feed

  • Pregunta

  • Hola amigos estoy haciendo un programa en el cual tengo que sumar los valores de diferentes filas para obtener el total de una columna me gustaría saber como puedo hacer esto en codigo sql... Estoy trabajando en lenguaje Visual basic 2008 con el sql que trae incorporado...

    Me pasa lo siguiente en sql le doy query, despues uso instruciones sql, paso a cojer la segunda opcion que dice SELECT que devuelve un solo valor y me tocaria usar la instrucion SUM que es para sumar en SQL...
    Cuando estoy en el diseño de consultas donde escojo pagos y en la opcion agrupar selecciona sum y en esa parte voy yo, necesito saber como hacer para llamar la suma...
    ¿Quedaria el query como ScalarQuery y el nombre que uno le quiera poner?

    Gracias de antemano...




    martes, 8 de abril de 2014 2:12

Todas las respuestas

  • Hola:

     ¿Y que lenguaje estas usando?.

    La manera mas sencilla para sumar las filas de un DGV es esta:

    private void SumOpcion2()
    {
        decimal total = 0;
        if(dgvArticulos.Rows.Count > 0)
        {
            foreach(DataGridViewRow row in dgvArticulos.Rows)
            {
                total += Convert.ToDecimal(row.Cells["columnPrecio"].Value);
            }
        }
    
        txttotal.Text = Convert.ToString(total);
    }

    Desconozco si en Vs2008 puedes usar Linq pero, si es así esta es otra forma de realizar una sumatoria:

    private void Sum()
    {
        txttotal.Text = Convert.ToString(dgvArticulos.Rows.Cast<DataGridViewRow>().Sum(x => Convert.ToDecimal(x.Cells["columnPrecio"].Value)));
    }

    Eso y otras cosas mas podrás encontrarlo en este articulo:

    Llenar DataGridView con datos de TextBox’s usando Datasource o el método Add()


    Saludos desde Monterrey, Nuevo León, México!!!

    martes, 8 de abril de 2014 3:53
  • Gracias Luis y que pena no haber especificado el lenguaje....
    martes, 8 de abril de 2014 14:51
  • Hola Alex:

     Si lograste resolver tu necesidad no olvides cerrar la pregunta marcando la respuesta como tal, esto para que otros usuarios puedan servirse de la misma.


    Saludos desde Monterrey, Nuevo León, México!!!

    martes, 8 de abril de 2014 17:14
  • No luis necesito saber como hacerlo por codigo sql lo e estado tratando de hacerlo de esta forma:

    Me pasa lo siguiente en sql le doy query, despues uso instruciones sql, paso a cojer la segunda opcion que dice SELECT que devuelve un solo valor y me tocaria usar la instrucion SUM que es para sumar en SQL...
    Cuando estoy en el diseño de consultas donde escojo pagos y en la opcion agrupar selecciona sum y en esa parte voy yo...

    ¿necesito saber como hacer para llamar la suma?
    ¿Quedaria el query como ScalarQuery y el nombre que uno le quiera poner?

    martes, 8 de abril de 2014 18:18
  • Hola:

     Pero tu pregunta dice:

    Como puedo sumar columna en un DatagridView

    Tal vez si nos muestras alguna imagen de tu DGV señalando las celdas o columnas que deseas sumar y donde quieres ver el resultado nuestra respuesta sea mas atinada.


    Saludos desde Monterrey, Nuevo León, México!!!

    miércoles, 9 de abril de 2014 16:55

  • eeee tratado muchas veces de subir la imagen luis pero dice q no me deja hasta comprobar mi cuenta me imagino xq soy nuevo....

    pero seria algo asi:

    apellidos          nombres       Direccion               Fecha                Pagos

    lopez               Julio              calle 12 #9-41       21/01/2014      120.000

    lopez               cesar            calle 15 #1-33       10/03/2014      270.000

    Villa                 Jorge             calle 17 #5-22       08/04/2014      150.000

    Boton(consultar)       Texbox(donde va el resultado)

    Esta tabla esta hecha en sql y montada en un formulario en visual basic 2008 ¿quiero saber como hago para sumar el campo de pagos mediante la instrucion SUM en sql y como llamarlo en el visual?

    • Editado Alex Aponte miércoles, 9 de abril de 2014 18:01
    miércoles, 9 de abril de 2014 17:53