como sumar una columna de datos en un datagid o en una base de datos

HACK_SMART

Lanero Reconocido
29 Mar 2004
109
hola tengo un problema con un sistema que estoy realizando; es sobre factuacion en la columna de precio total hay varias filas con valoes numericos entonces abajo del datagrid hay un texbox en el cual quiero mandar el precio total de todos los productos cuyos precios estan en la columna ,,, pero quiero sumarlos y mandarlos al texbox como lo hago ???? estoy traajando en visual basic .net

usando conexiones oledb
 
Si la fuente de datos (DataSource) del datagrid es un DataTable, es muy sencillo.

Supongamos que el DataTable se llama table1 y el TextBox se llama textBox1 el codigo sería algo así:

Código:
    textBox1.Text =table1.Compute("Sum(precio)","").ToString();
 
Exactamente como tienes configurado el datagrid? o Si quieres pasame el codigo que tienes hasta ahora cuando pegas el datagrid a la fuente de datos.
 
Dim CADENA As String = "Provider=Microsoft.Jet.OLEDB.4.0;password=;user id=admin;Data Source= \NYKON_SHOP_CENTER\BASES\USER.mdb"
Dim conexion As OleDbConnection
conexion = New OleDbConnection(CADENA)
Dim sql As String
Dim SQL2 As String = "SELECT * FROM FACTURA"
Dim CANAL As OleDbDataAdapter
Dim TABLA2 As New DataSet()
CANAL = New OleDbDataAdapter(SQL2, conexion)

Dim orden As OleDbCommand
sql = "insert into FACTURA(PRODUCTO,MARCA,TALLA,CANTIDAD,PRECIO_UNITARIO,PRECIO_TOTAL) values(@PRODUCTO,@MARCA,@TALLA,@CANTIDAD,@PRECIO_UNITARIO,@PRECIO_TOTAL)"
orden = New OleDbCommand(sql, conexion)

orden.Parameters.Add(New OleDbParameter("@PRODUCTO", OleDbType.VarWChar, 20))
orden.Parameters("@PRODUCTO").Value = PRODUCTO.Text
orden.Parameters.Add(New OleDbParameter("@MARCA", OleDbType.VarWChar, 20))
orden.Parameters("@MARCA").Value = MARCA.Text
orden.Parameters.Add(New OleDbParameter("@TALLA", OleDbType.VarWChar, 20))
orden.Parameters("@TALLA").Value = TALLA.Text
orden.Parameters.Add(New OleDbParameter("@CANTIDAD", OleDbType.Currency, 11))
orden.Parameters("@CANTIDAD").Value = CANTIDAD.Text
orden.Parameters.Add(New OleDbParameter("@PRECIO_UNITARIO", OleDbType.Currency, 20))
orden.Parameters("@PRECIO_UNITARIO").Value = PRECIO.Text
orden.Parameters.Add(New OleDbParameter("@PRECIO_TOTAL", OleDbType.Currency, 20))
orden.Parameters("@PRECIO_TOTAL").Value = PRECIO_TOTAL.Text

orden.Connection.Open()
orden.ExecuteNonQuery()
orden.Connection.Close()

CANAL.Fill(TABLA2, "FACTURA")
DG.DataSource = TABLA2
DG.DataMember = "FACTURA"
 
Ese Es El Codigo Del Datagrid Que Se Genera Cuando El Cliente Selecciona Sus Productos En La Columna Precio Final Necesito Sumarla Y Mandarla A Una Textbox
 
Listo, lo que veo que haces es que dentro del dataset Tabla2 (no debes llamarlo asi porque no es una tabla)


Ahora lo que se necesita es llenar el textbox con el total, el codigo seria algo asi:

textBox1.Text = TABLA2.Tables["FACTURA"].Compute("Sum(precio)","").ToString()

donde textbox1 es el campo de texto donde quieres colocar el total y precio es la columna que deseas sumar.
 
he hecho otra cosa tambien con el un sql

sql as string ="select sum(precio_total)as suma from factura "

y lo he almacenado en un dataset

luego mando la columan suma del dataset pero me muestra el primer registro de la columna suma lo que quiero que se vaya al ultimo como hago eso
 
Si lo haces de la forma que yo te dije anteriormente te ahorras un consulta en base de datos, entre mas consultas a base de datos te ahorres mas eficiente será tu aplicacion
 
SUMATOTAL.Text = TABLA2.Tables["FACTURA"].Compute("Sum(precio)","").ToString()

EN LA PARTE DE FACTURA ME DICE QUE HAY UN ERROR YA QUE NO SE A DEFINIDO UN IDENTIFICADOR ,,, NO FUNCIONA
 
HACK_SMART dijo:
SUMATOTAL.Text = TABLA2.Tables["FACTURA"].Compute("Sum(precio)","").ToString()

EN LA PARTE DE FACTURA ME DICE QUE HAY UN ERROR YA QUE NO SE A DEFINIDO UN IDENTIFICADOR ,,, NO FUNCIONA
SUMATOTAL.Text = TABLA2.Tables["FACTURA"].Compute("Sum(precio)","").ToString()
lo que esta en rojo es el nombre de la columna a sumar
 
asi me queda dificil, mandame el proyecto junto el mdb en un zip a victorv[arroba]laneros[punto]com
 
El problema era que yo temandé el codigo en c# y tu trabajas en visual basic .net el codigo es:

TextBox1.Text = TABLA2.Tables("FACTURA").Compute("Sum(PRECIO_TOTAL)","")
 
trabajo en una palicacion en visual baci 6.0 y tengo una base de datos donde muestro la informacion en un datagrid quiero saber como puedo en le data grid enumerar en una columna los datos que tengo gracias al que pueda colaborarme
 

Los últimos temas