- Tema Autor
- #1
Lenguaje: Visual Basic .net 2005
B
sql express 2005
Como dice el titulo les proporcionare un pequeño aporte que en lo personal se me hace muy útil a la hora de buscar un cliente, producto, factura, etc. a través de un textbox y un DataGridView
esto será a puro código, es decir, CERO asistentes
primeramente necesitamos 3 controles
Control --- Nombre
1 Textbox - txtNombre
1 DataGridView - dgvBusquedaProductos
2 Button - btnAceptar y btnCancelar
primeramente hacemos referencia a los namespace
despues será crear los objetos a nivel formulario
ahora vamos a crear un procedimiento para cargar el DataGridView
la Variable "Cadena" que esta en Negrita del código es la cadena de conexión creada en un modulo y "con" es el objeto SqlConnection creado en el mismo sitio
el "(Pr_des LIKE '" & Me.txtNombre.Text & "%')" es el "COMO" va a filtrar los datos en el DataGridView, es decir, que los filtrara desde la primer LETRA que se teclee
ahora ya creado el procedimiento procederemos a llamarlo en el objeto txtNombre en el evento TextChanged, esto para que busque automaticamente cada vez que teclees en el text y lo valla filtrando, tambien puede ir en el evento Load del Form (no afecta en nada por el filtro LIKE).
ahora lo que haremos es obtener el valor de la fila (al decir valor me refiero registro en la BD del campo Pr_codigo), este ira en el Evento Click del btnAceptar:
lo que se encuentra en negritas es el lugar donde va a mandar el valor del registro
y en el evento Click del btnCancelar solor ira el código para cerrar el Form de la busqueda
ahora para liberar espacio en memoria utilizado por este método de busqueda, vamos a "destruir" el objeto BindingSource
en el evento FormClosed del Formulario agregaremos lo siguiente:
hacer esto con asistentes (herramientas del visual basic) es mas sencillo pero si lo desarrollas a puro codigo te ahorras espacio en memoria (de disco duro), entre mas ligero y compacto sea un sistema es mas eficiente, es decir, mas "rápido".
bueno esto a sido todo de mi parte espero que les sirva, me tarde un par de dias en investigar como realizar esto... soy Estudiante, Lic. en Sistemas Computacionales ya estoy en mi 10mo trimestre ya casi egreso y queria compartirles a los novatos o los experimentados una manera mas de como realizar busqueda... si tienes conocimiento de esto y realizar una busqueda más avanzada tomalo como referencia para iniciarla!
si tienen dudas, comentarios, criticas y agradecimientos. haganmelas llegar asi sabre si les fue de utilidad este pequeño "tutorial"... si les interesa puedo hacer un post de como cargar los datos de una BD en un ComboBox tambien a puro codigo...
lo volvere a poner! aver si ahora agradecen el esfuerzo de otros ¬¬
B

Como dice el titulo les proporcionare un pequeño aporte que en lo personal se me hace muy útil a la hora de buscar un cliente, producto, factura, etc. a través de un textbox y un DataGridView
esto será a puro código, es decir, CERO asistentes
primeramente necesitamos 3 controles
Control --- Nombre
1 Textbox - txtNombre
1 DataGridView - dgvBusquedaProductos
2 Button - btnAceptar y btnCancelar
primeramente hacemos referencia a los namespace
Código:
Imports System.Data.SqlClient
Código:
Private bsProductos As Windows.Forms.BindingSource = New BindingSource 'Creamos el BindingSource
Dim dsProductos As New DataSet 'Creamos el DataSet
Dim dt1 As New DataTable 'Creamos el DataTable
Código:
Private Sub cargarDataGrid()
Try
con.ConnectionString = Cadena
Dim daProductos As New SqlDataAdapter("SELECT Pr_codigo as CLAVE, Pr_des as DESCRIPCIÓN " _
& "FROM Productos WHERE (Pr_des LIKE '" & Me.txtBusca.Text & "%')", con)
'Creamos el DataAdapter y le asignamos la consulta
dsProductos.Clear() 'Limpiamos el DataSet
daProductos.Fill(dt1) 'Lo llenamos con el DataTable
bsProductos.DataSource = (dt1) 'Cargamos el BindingSource
dgvBusquedaProductos.DataSource = bsProductos 'le Asignamos el BindingSource al DataSource del DataGridView
'Apartir de Aqui manipularemos las propiedades "Ancho" de cada columna
Dim column As DataGridViewColumn = dgvBusquedaProductos.Columns(0)
column.Width = 100
Dim column1 As DataGridViewColumn = dgvBusquedaProductos.Columns(1)
column1.Width = 365
Catch ex As SqlClient.SqlException
MessageBox.Show(ex.Message)
End Try
End Sub
el "(Pr_des LIKE '" & Me.txtNombre.Text & "%')" es el "COMO" va a filtrar los datos en el DataGridView, es decir, que los filtrara desde la primer LETRA que se teclee
ahora ya creado el procedimiento procederemos a llamarlo en el objeto txtNombre en el evento TextChanged, esto para que busque automaticamente cada vez que teclees en el text y lo valla filtrando, tambien puede ir en el evento Load del Form (no afecta en nada por el filtro LIKE).
ahora lo que haremos es obtener el valor de la fila (al decir valor me refiero registro en la BD del campo Pr_codigo), este ira en el Evento Click del btnAceptar:
Código:
My.Forms.FormularioX.CajadeTexto.Text = CInt(dgvBusquedaProductos.Item(0, dgvBusquedaProductos.CurrentRow.Index).Value) '0 es el numero de columna
y en el evento Click del btnCancelar solor ira el código para cerrar el Form de la busqueda
ahora para liberar espacio en memoria utilizado por este método de busqueda, vamos a "destruir" el objeto BindingSource
en el evento FormClosed del Formulario agregaremos lo siguiente:
Código:
bsProductos.Dispose()
bueno esto a sido todo de mi parte espero que les sirva, me tarde un par de dias en investigar como realizar esto... soy Estudiante, Lic. en Sistemas Computacionales ya estoy en mi 10mo trimestre ya casi egreso y queria compartirles a los novatos o los experimentados una manera mas de como realizar busqueda... si tienes conocimiento de esto y realizar una busqueda más avanzada tomalo como referencia para iniciarla!
si tienen dudas, comentarios, criticas y agradecimientos. haganmelas llegar asi sabre si les fue de utilidad este pequeño "tutorial"... si les interesa puedo hacer un post de como cargar los datos de una BD en un ComboBox tambien a puro codigo...
lo volvere a poner! aver si ahora agradecen el esfuerzo de otros ¬¬