Foros del Web » Programación para mayores de 30 ;) » .NET »

Mostrar el total de las filas de un datagridview en un textbox

Estas en el tema de Mostrar el total de las filas de un datagridview en un textbox en el foro de .NET en Foros del Web. Hola amigos, espero me entiendan la idea y el problema que tengo, bueno para mostrar mis datos uso un datagridviw tengo una columna para mostrar ...
  #1 (permalink)  
Antiguo 16/02/2013, 08:56
 
Fecha de Ingreso: febrero-2013
Mensajes: 4
Antigüedad: 11 años, 2 meses
Puntos: 0
Pregunta Mostrar el total de las filas de un datagridview en un textbox

Hola amigos, espero me entiendan la idea y el problema que tengo, bueno para mostrar mis datos uso un datagridviw tengo una columna para mostrar un sub total, y el total se muestra en un textbox fuera del data, para esto tengo una función, como el formulario me permite consultar y agregar nuevos registros, el problema se muestra despues de guardar mostrando el error: no se puede encontrar la columna cdsubtotal. nombre del parametro: columnName

codigo de la funcion:

Sub calcular_total()
Dim total As Double = 0
For Each fila As DataGridViewRow In DgvDetalle.Rows
If fila.Cells("cdsubtotal").Value Is Nothing Then
Exit Sub
Else
total += Convert.ToDouble(fila.Cells("cdsubtotal").Value)
End If

Next
txttotal.Text = Format(total, "#,##0.00")

End Sub



Evento donde muestro la función dentro del datagridviw
Private Sub DgvDetalle_RowsAdded(sender As Object, e As DataGridViewRowsAddedEventArgs) Handles DgvDetalle.RowsAdded
'
calcular_total()

End Sub

Muchas gracias
  #2 (permalink)  
Antiguo 16/02/2013, 10:47
Avatar de emmax  
Fecha de Ingreso: agosto-2010
Ubicación: Sonora
Mensajes: 172
Antigüedad: 13 años, 8 meses
Puntos: 8
Respuesta: Mostrar el total de las filas de un datagridview en un textbox

Hola, deshabilitale la opcion, "Habilitar Accion Agregar" en las propiedades del grid, segun yo eso te esta pegando.

Saludos....
  #3 (permalink)  
Antiguo 18/02/2013, 20:06
 
Fecha de Ingreso: febrero-2013
Mensajes: 4
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Mostrar el total de las filas de un datagridview en un textbox

no se ha solucionado con tu rspta emmax, sigo con el miso error, mira aca dejo el codigo de mi metodo guardar datos, que despues de guardar deseo que se ejcute el metodo calcular total y es ahi donde se muestra el error, como indique anteriormente cuando ingreso al formulario no m muestra ningun error, el problema es cuando guardo un registro y deseo q de este m muestre su total en un textbox.

Código:
Public Sub guardardatos()
        Dim cn As New SqlConnection(My.Settings.conexJ)
        Dim cmdPres As New SqlCommand("insertar_ingreso", cn)
        Dim cmdDet As New SqlCommand("insertar_detalle_ingreso", cn)
        Dim tr As SqlTransaction = Nothing

        cmdPres.CommandType = CommandType.StoredProcedure
        cmdPres.Parameters.AddWithValue("@coding", 0)
        cmdPres.Parameters.Item("@coding").Direction = ParameterDirection.Output
        cmdPres.Parameters.AddWithValue("@codest", TxtCodEst.Text)
        cmdPres.Parameters.AddWithValue("@codusuario", txtcodusu.Text)
        cmdPres.Parameters.AddWithValue("@totaling", txttotal.Text)
        cmdPres.Parameters.AddWithValue("@fecing", Fec_reg_ing.Value)
        cmdPres.Parameters.AddWithValue("@sit", txtsit.Text)
        cmdPres.Parameters.AddWithValue("@tipo", CboMotivo.SelectedItem)
        cmdPres.Parameters.AddWithValue("@Ob", txtob.Text)



        cmdDet.CommandType = CommandType.StoredProcedure
        cmdDet.Parameters.AddWithValue("@ingreso", 0)
        cmdDet.Parameters.AddWithValue("@coddeta", 0)
        'cmdPres.Parameters.Item("@coddeta").Direction = ParameterDirection.Output
        cmdDet.Parameters.AddWithValue("@medcod", 0)
        cmdDet.Parameters.AddWithValue("@cantidad", 0)
        cmdDet.Parameters.AddWithValue("@lote", 0)
        cmdDet.Parameters.AddWithValue("@regsan", 0)
        cmdDet.Parameters.AddWithValue("@fecVen", 0)
        cmdDet.Parameters.AddWithValue("@pre_op", 0)
        cmdDet.Parameters.AddWithValue("@proce", 0)
        cmdDet.Parameters.AddWithValue("@subtotal", 0)
        cmdDet.Parameters.AddWithValue("@pre_op_d", 0)

        Try
            cn.Open()
            tr = cn.BeginTransaction
            cmdPres.Transaction = tr
            cmdDet.Transaction = tr

            cmdPres.ExecuteNonQuery()
            cmdDet.Parameters.Item("@ingreso").Value = cmdPres.Parameters("@coding").Value
            For i = 0 To DgvDetalle2.Rows.Count - 1

                cmdDet.Parameters.Item("@coddeta").Value = DgvDetalle2.Rows(i).Cells(0).Value
                cmdDet.Parameters.Item("@medcod").Value = DgvDetalle2.Rows(i).Cells(1).Value
                cmdDet.Parameters.Item("@cantidad").Value = DgvDetalle2.Rows(i).Cells(4).Value
                cmdDet.Parameters.Item("@lote").Value = DgvDetalle2.Rows(i).Cells(6).Value
                cmdDet.Parameters.Item("@regsan").Value = DgvDetalle2.Rows(i).Cells(3).Value
                cmdDet.Parameters.Item("@fecVen").Value = DgvDetalle2.Rows(i).Cells(5).Value
                cmdDet.Parameters.Item("@pre_op").Value = DgvDetalle2.Rows(i).Cells(7).Value
                cmdDet.Parameters.Item("@proce").Value = DgvDetalle2.Rows(i).Cells(9).Value
                cmdDet.Parameters.Item("@subtotal").Value = DgvDetalle2.Rows(i).Cells(10).Value
                cmdDet.Parameters.Item("@pre_op_d").Value = DgvDetalle2.Rows(i).Cells(8).Value

                cmdDet.ExecuteNonQuery()

                'MessageBox.Show("Datos guardados exitosamente", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
            Next



            tr.Commit()
        Catch ex As Exception
            If tr IsNot Nothing Then
                tr.Rollback()
            End If
            Throw ex
        Finally
            If cn.State = ConnectionState.Open Then
                cn.Close()

            End If
            tr = Nothing
            cmdPres = Nothing
            cmdDet = Nothing
            cn = Nothing
        End Try
    End Sub
  #4 (permalink)  
Antiguo 18/02/2013, 20:52
Avatar de emmax  
Fecha de Ingreso: agosto-2010
Ubicación: Sonora
Mensajes: 172
Antigüedad: 13 años, 8 meses
Puntos: 8
Respuesta: Mostrar el total de las filas de un datagridview en un textbox

Hola, a lo mejor y es que te comiste una letra o a lo mejor y aqui esta el detalle que traes, quisiera que me aclararas esto por favor, en tu metodo guardar datos tienes un "DgvDetalle2" y en tu metodo calcular_total() tienes un "DgvDetalle", te comiste el 2 o estas trabajando con 2 grid diferentes, aqui podria ester el detalle, ahora aclarando un poco tu metodo, cuando corres el metodo guardardatos() aqui estas mandando tus datos a la BD, es correcto? entonces no me queda muy claro eso de que quieres llamar el metodo calcular_total() una ves finalizado el primer metodo, me podrias explicar un poco mas, como llenas el "DgvDetalle", si a mano o lo traes desde una consulta, las columnas del gridview las tienes creadas o las creas cuando traes la informacion(aqui suponiendo que traes la infomacion desde una consulta) te pregunto esto, por que asi a simple vista no veo ningun error en tus metodos.
  #5 (permalink)  
Antiguo 22/02/2013, 07:03
 
Fecha de Ingreso: febrero-2013
Mensajes: 4
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Mostrar el total de las filas de un datagridview en un textbox

Hola perdón por la demora, te explico uso un form para consultar los productos ingresados pero también lo uso como mantenimiento(ingreso, elimina, modifica..) por esto uso dos datagridview el método guardar me jala los datos del dgvdetalle2 y los guarda en la bd, luego estos son mostrados en mi dgvdetalle hasta aqui todo bien, el problema se genera cuando selecciono una fila y deseo que de esta fila se muestre el total de sus productos q pueden ser varios en un textbox, como te indique el calcular total funciona bien cuando entro y estoy consultando, pero activo mi botón nuevo, procedo a ingresar los datos guardo y se supone que se debe ocultar el dgvdetalle2 y activar el dgvdetalle ya mostrando los datos guardardos es ahi que me muestra el error. Para contestar tu ultima pregunta, las columnas del dgvdetalle son creadas previamente desde el diseño.
Muchas gracias por tu tiempo
  #6 (permalink)  
Antiguo 22/02/2013, 15:13
 
Fecha de Ingreso: febrero-2013
Mensajes: 4
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Mostrar el total de las filas de un datagridview en un textbox

Hola gracias, he solucionado mi problema con algo mas simple, ya no sume los datos del grid detallado, sino jale el total que esta en mi grid principal y lo mostre en un textbox asi:


Sub calcular_total()
Dim row As DataGridViewRow = DgvProd.CurrentRow
txttotal.Text = CStr(row.Cells(5).Value)
End Sub

y todo ok okok

gracias hasta pronto

Etiquetas: datagridview
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:01.