none
Captura de datos en datagridview RRS feed

  • Pregunta

  • Buenas noches, tiene mucho tiempo que no programo y creo que eso me esta afectando en comprender como se maneja en vb.net, tengo una duda sobre como llenar un datagriview, la idea es capturando la primer celda de la primer columna y los demás campos se deberían llenar en base a lo encontrado en la primer columna.

    Agregue las columnas del datagridview en diseño ya tiene columnas designadas e hice 2 tipos de conexión las cuales me funcionan solo si quiero hacer consultas, pero no tengo idea de como registrar solo los campos que quiero.

    Ahora el datagridview tiene 3 columnas Clave, Descripción, Unidad y precio

    en la primer celda de la columna clave se programo para que el  el evento CellEndEdit realice la búsqueda en base a lo capturado, eso ya esta correcto, mi conexión la hice de esta manera

    Private Sub DGVentas_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles DGVentas.CellEndEdit
            If e.ColumnIndex = 0 Then
                Convierte el valor capturado en la primer celda a texto para poder mandar la clave del producto a consultar
                CLAV = Convert.ToString(DGVentas.CurrentRow.Cells(0).Value)

              ' aquí debe de ir algo que lleve las siguientes columnas considerando que la primer celda tiene un valor

        End If
     End Sub

     Aquí manejo otra clase para llamar la conexión pero esa parte no hay problema

    Function Consultar(Clave)
             Dim Con As String = "SELECT DESCRIPCION, UNIDAD, PRECIO   FROM Inventario where CLAVE_PROD='" & CLAVE & "'"
            Dim Comando As New sqlDataAdapter(Con, Connec.Conexion)
            Dim Data As New DataSet
            Comando.Fill(Data, "INVENTARIO")
            
            Consultar = Data.Tables("INVENTARIO")
        End Function

    Espero me puedan ayudar, ya que estoy atorado veo soluciones pero la mayoría ofrece tener textbox y llenar el datagrid pero con los campos que estoy capturando me faltaría espacio y por presentación ya no es viable.




    • Editado Daniel_U_H miércoles, 3 de octubre de 2018 4:04
    miércoles, 3 de octubre de 2018 3:50

Respuestas

  • Prueba con esto en el evento CellEndEdit:

    Private Sub DGVentas_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles DGVentas.CellEndEdit If e.ColumnIndex = 0 Then 'Convierte el valor capturado en la primer celda a texto para poder mandar la clave del producto a consultar

    CLAV = Convert.ToString(DGVentas.CurrentRow.Cells(0).Value) ' aquí debe de ir algo que lleve las siguientes columnas considerando que la primer celda tiene un valor Dim datos = Consultar(CLAV).Rows(0) With DGVentas.Rows(DGVentas.CurrentRow) .Cells(1).Value = datos("DESCRIPCION") .Cells(2).Value = datos("UNIDAD") .Cells(3).Value = datos("PRECIO") End With End If End Sub Function Consultar(Clave) Dim Con As String = "SELECT DESCRIPCION, UNIDAD, PRECIO FROM Inventario where CLAVE_PROD='" & CLAVE & "'" Dim Comando As New sqlDataAdapter(Con, Connec.Conexion) Dim Data As New DataSet Comando.Fill(Data, "INVENTARIO") Consultar = Data.Tables("INVENTARIO") End Function

    Se supone que la columna 0 del datagrid es la clave, la 1 es la descripción, la 2 las unidades y la 3 el precio.



    Gracias. Francisco Lorente.

    • Propuesto como respuesta Pablo Rubio jueves, 4 de octubre de 2018 15:20
    • Marcado como respuesta Pablo Rubio lunes, 8 de octubre de 2018 14:33
    jueves, 4 de octubre de 2018 11:21