CLR: .Net / Mono / Boo / Otros CLR > C#
Sumar Columnas de un Datagridview
lunaDeEden:
Hola a todos, les pido su ayuda otra vez... no pude conseguir sumar columnas de un datagrid...Les cuento un poco..
Tengo que sumar los precios de los productos que voy agregando al datagrid DetalleDeVenta hasta ahi todo bien..pero me falta la suma e ir asignando el resultado de la suma en un textbox cada vez que agregue un producto a la grilla...
Trabajo con Mysql y Visual C# 2008...Gracias desde ya....
gerardoskype:
1._ Llamemos al DataGrindView "DG", una Label o un TextBox para poner la suma.
el data contiene una columna "Producto" y o tra "Precio".
2._ Suponiendo que tenemos que ingresar en la misma ventana la info a "DG"; Creamos 2 Labels y 2 TextBox para la info.
3._ Como tenemos que agregar un boton para procesar nuestra info creamos un Button "x".
4._ Ponemos una descripcion en el textbox1 y ponemos un precio x en el textbox2 y presionamos el button
--- Código: C# --- private void button1_Click(object sender, EventArgs e) { DG.Rows.Add(textBox1.Text, textBox2.Text); //aqui agregamos la info a la data int sumatoria = 0; foreach(DataGridViewRow row in DG.Rows) { sumatoria += Convert.ToInt32(row.Cells[1].Value); //aqui recorre las celdas y las va sumando } txtPrecioTotal.Text = Convert.ToString(sumatoria); //aqui se graba el total }
espero te sirva. :good:
lunaDeEden:
Gracias por tu respuesta.....me sirvio de maravillas...solo modifique el tipo de datos a double para que me sume los decimales y hice que se multipliquen las columnas cantidad y precio... ahora te pido otro favor si sabes como hacer para que al eliminar una fila se reste el valor de la columna seleccionada al total...
Hice esto pero no me funciona solo borra la fila selecionada...y no resta
--- Código: C# --- { double resultado = 0; foreach (DataGridViewRow row in grilladetalleventa.Rows) { resultado = (Convert.ToDouble(row.Selected) * Convert.ToDouble(row.Selected)); } t_importe.Text = Convert.ToString(Convert.ToDouble(t_importe.Text) - resultado);//borra la fila seleccionada grilladetalleventa.Rows.Remove(grilladetalleventa.CurrentRow); }
si me ayuda alguien...gracias desde ya.... :good:
gerardoskype:
Esto es muy facil, dentro del evento o herramienta que utilizaras en mi caso,
selecciono la celda y con un menu contextual "Eliminar", de nuevo corres la suma de las filas.
En pocas palabras de nuevo el foreach.
saludos.
lunaDeEden:
tenes razon, me la complique sola ya lo hice..y anda de 10..!!!..gracias.....por tu tiempo. ;)
Navegación
[#] Página Siguiente
Ir a la versión completa