Duda para mostrar resultado en datagridView

Mi situación es la siguiente, estoy desarrollando una aplicación windows form en C# 2008 con conexión a sql express 2005, necesito hacer una consulta de los registros de mi tabla y que también al final en la ultima fila del datagridview me muestre el resultado de la suma de determinada columna, todo en el mismo datagridview.
Mi tabla se llama combustible con estos datos:no_economico, factura, fecha, subtotal, iva, total
Para hacer la consulta de los datos uso este código:
cnn = new SqlConnection(conexion);
cnn.Open();
string consulta = "select no_economico,subtotal, iva, total from combustible  where factura='" + tipo + "'";
dsconsul.Clear();
daconsul = new SqlDataAdapter(consulta, cnn);
daconsul.Fill(dsconsul, "combustible");
dataGridView1.DataSource = dsconsul.Tables["combustible"];
Anteriormente hacia la suma de las columnas subtotal, iva y total mediante la sentencia de sql : "select sum(subtotal), sum(iva), sum (total) from combustible where factura='"+tipo+"'".. Y mostraba los resultados en otro datagriview(datagridview2).
Pero ahora necesito que todo se muestre en el datagridview1. Así que te agradecería mucho si pudieras orientarme un poco, en como conseguir esto.

1 respuesta

Respuesta
1
Voy a hacer unas pruebas para ver cual podría ser la mejor solución a esta pregunta pero mientras tanto te dejo este enlace que me ha sacado de muchas dudas cuando utilizo DataGridViews.
Ahora, solo para asegurarme que entendí bien, lo que necesitas es que una vez lleno tu DGV con tus datos, añadir una fila al final con la suma de cada columna ( o de ciertas columnas solamente) como un total. ¿Estoy en lo cierto?
Otra cosa, ¿el DGV se llena una sola vez al inicializar la forma? ¿O se esta actualizando constantemente en base a otras acciones?
Hola sykhlo, gracias por responder tan rapido
Así es justo lo que necesito, que una vez lleno el datagridview con los datos de la tabla, se añada una fila al final con la suma de las columnas subtotal, y total como un total.
Y si el datagridview solo se llena una vez cuando se hace la consulta..
Bueno de nuevo muchas gracias por contestar, y espero tu sugerencia para resolver este dilema de programación..
Checo el enlace, y también haré unas pruebas.
Saludos
Saludos
Cheque el enlace que me pasaste, me sirvió para darme una idea. Hasta ahora ya eh conseguido hacer la suma del campo del datagridview de esta forma:
int total = dataGridView2.Rows.Count;
double subtotal, suma=0;
for (int index = 0; index <= this.dataGridView2.Rows.Count - 1; index++)
{
subtotal = Convert.ToDouble(this.dataGridView2.Rows[index].Cells[3].Value);
suma=suma + subtotal;
}
Y hasta ahí todo va muy bien, solo que hay momento de querer agregar el resultado de la suma a mi datagrid con el procedimiento que viene en el enlace me da este error:
"Rows cannot be programmatically added to the DataGridView's rows collection when the control is data-bound."
Que segun entiendo, no me permite hacer modificaciones en el datagrid por el hecho de estar enlazado a la base de datos. Alguna idea de como poder agregar esta fila?..En si hago todo esto porque el resultado de mi consulta en el DTG la exporto a excel y necesito que se incluya la sumatoria.
Como alternativa eh pensado en poner el resultado en un textbox y exportar esto al mismo archivo de excel pero no creo que sea sencillo de lograr.. Espero tu respuesta
Hasta pronto .. gracias
Antes que nada disculpa la demora pero tuve recientemente un cambio de ISP y tuve que permanecer desconectado por casi 2 semanas.
No se si ya lograste resolver el problema pero espero de cualquier modo ser de ayuda, si no para ti por lo menos para quienes se encuentren algún día con la misma situación.
Efectivamente el error te indica que no puede modificar el formato del DataGridView por estar enlazado con la base de datos, por lo cual el resultado que deseas lo podemos obtener creando un DataGridView sin enlazar y llenándolo directamente con un dataset, es decir crear el DataSet y llenarlo con el resultado de tu consulta a la base de datos, luego crear el DGV, llenarlo con el DataSet y después añadir la columna que deseas insertando la columna al final.
Si me dejas tu correo electrónico te envío la prueba que yo hice.
Hola,
Mira mi correo es este : [email protected], y espero con gusto que me envíes el archivo, por tu explicación entiendo que si es posible agregarle la ultima linea por que el datagrid se llena con el resultado de la consulta del dataset.
Genial, espero el mail y cualquier duda que surja me comunico contigo, de nuevo muchas gracias por tu tiempo
Saludos
Hola de nuevo, después de algunos intentos probé unas alternativas bastante aceptables para lo que quería lograr, de todos modos te agradezco tu tiempo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas