none
DatagridView de capturar de datos

    Pregunta

  • Muy buenos días, Compañeros del Foro

    Tengo un datagridView el cual quiero que al escanear el código de barra a través de un textbox el producto guardado en la base de datos me muestre sus datos en el datagrid.

    Las columnas de este DatagridView son nombreproduc, costo, cantidad.

    Cada producto tiene un código de barras necesito que apenas capto el código de barras con el text se me complete el datagrid con los  campos.

    Los productos los tengo en una tabla en SQL.

    Es posible haces que un datagrid funcione de esta manera?

    Desde ya gracias.

    jueves, 20 de octubre de 2016 17:43

Respuestas

  • Hola:

     Si es posible, y no le veo tanta complicación, debes seguir estos pasos:

    1. Crea una función que reciba como parámetro el código de barras, que por la longitud sugiero que sea del tipo string:

    Public Function TraerProducto(ByVAl codigoBarras As String) As DataTable
    '
    
            Using cnx As New OracleConnection(ConfigurationManager.ConnectionStrings("cnnString").ToString())
    
                Dim SqlAction As String = "SELECT * FROM Producto WHERE CodigoBarras = @codigoBarras"
                '
                Using cmd As New OracleCommand(SqlAction, cnx)
    				cmd.Parameters.AddWithValue("@codigoBarras", codigoBarras)
                    '
                    Dim da As New OracleDataAdapter(cmd)
                    '
    
                    Dim dt As New DataTable()
    
                    da.Fill(dt)
                    '
    				Return dt
    
                End Using
            End Using
    End Function

     2. En el evento Enter del TextBox donde caerá el CodigoDeBarras llama a la función:

     Private Sub textbox1_KeyDown(...)
    	If(e.KeyData = Keys.Enter) Then
    		dataGridView1.DataSource = TraerProducto(textbox1.Text);
    		
    	End If	
     End Sub

    Recuerda que las lectoras de códigos envían un Enter al final de la lectura, en este caso aprovechamos este Enter para llamar a la función que realiza el select a la Bd.

     El código fue creado en un NotePad por lo que podría tener errores sintácticos, favor de analizar e implementar


    Saludos desde Monterrey, Nuevo León, México!!!

    jueves, 20 de octubre de 2016 18:00

Todas las respuestas

  • Si lo que deseas es que el datagrid se actualize apenas realices la búsqueda, podrías  servirte del keypress del textbox 

     Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
            If e.KeyChar = Convert.ToChar(13) Then
                MsgBox("enter key pressd ")
            End If
        End Sub


    jueves, 20 de octubre de 2016 17:52
  • Quiero que una vez leídos el código de barras con el lector se agregen al datagrid
    jueves, 20 de octubre de 2016 17:55
  • Hola:

     Si es posible, y no le veo tanta complicación, debes seguir estos pasos:

    1. Crea una función que reciba como parámetro el código de barras, que por la longitud sugiero que sea del tipo string:

    Public Function TraerProducto(ByVAl codigoBarras As String) As DataTable
    '
    
            Using cnx As New OracleConnection(ConfigurationManager.ConnectionStrings("cnnString").ToString())
    
                Dim SqlAction As String = "SELECT * FROM Producto WHERE CodigoBarras = @codigoBarras"
                '
                Using cmd As New OracleCommand(SqlAction, cnx)
    				cmd.Parameters.AddWithValue("@codigoBarras", codigoBarras)
                    '
                    Dim da As New OracleDataAdapter(cmd)
                    '
    
                    Dim dt As New DataTable()
    
                    da.Fill(dt)
                    '
    				Return dt
    
                End Using
            End Using
    End Function

     2. En el evento Enter del TextBox donde caerá el CodigoDeBarras llama a la función:

     Private Sub textbox1_KeyDown(...)
    	If(e.KeyData = Keys.Enter) Then
    		dataGridView1.DataSource = TraerProducto(textbox1.Text);
    		
    	End If	
     End Sub

    Recuerda que las lectoras de códigos envían un Enter al final de la lectura, en este caso aprovechamos este Enter para llamar a la función que realiza el select a la Bd.

     El código fue creado en un NotePad por lo que podría tener errores sintácticos, favor de analizar e implementar


    Saludos desde Monterrey, Nuevo León, México!!!

    jueves, 20 de octubre de 2016 18:00
  • Sin pasar por la base de datos, osea quieres que se guarde en el datagrid, pero no que no se agregue nada en una tabla de una base de datos?
    jueves, 20 de octubre de 2016 18:07
  • Perdona me quede ahí como puedo seguir?Quiero que se me complete el datagrid con el producto
            
    Public Function TraerProducto(ByVal codigoBarras As String) As DataTable
    
            Using cn As New SqlConnection("Data Source=MARTIN-PC;Initial Catalog=BASEDATOSCOMERCIO;Integrated Security=true")
    
    
                Dim SqlAction As String = "SELECT * FROM Productos WHERE Codigo = @codigo"
    
    cn.Open()
    
    
    End Using
    
    End Function

    jueves, 20 de octubre de 2016 20:04