Aporte: Busqueda de Registros en sql express 2005 y vb. net 2005

ibarra31

Bovino adolescente
#1
Lenguaje: Visual Basic .net 2005
B:eek: 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
Código:
Imports System.Data.SqlClient
despues será crear los objetos a nivel formulario
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
ahora vamos a crear un procedimiento para cargar el DataGridView

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
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:
Código:
My.Forms.FormularioX.CajadeTexto.Text = CInt(dgvBusquedaProductos.Item(0, dgvBusquedaProductos.CurrentRow.Index).Value) '0 es el numero de columna
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:
Código:
       bsProductos.Dispose()
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 ¬¬
 
#5
Hola, me gustaría que me ayudaras con éste tipo de búsquedas pero en lugar de manejar la clave o id hacerlo con un nombre o concepto!!!y gracias por el aporte ha sido de gran ayudas xD
 

EvilSama

Bovino de alcurnia
#7
Hola, me gustaría que me ayudaras con éste tipo de búsquedas pero en lugar de manejar la clave o id hacerlo con un nombre o concepto!!!y gracias por el aporte ha sido de gran ayudas xD
con cambiar el where de tu consulta en SQL puedes hacer lo que necesitas.

como plus yo les recomendaría que usaran store procedures en lugar de poner ls consulta ahí mismo. el proceso es mas rapido y puedes hacer mas operaciones en un solo paso
 
#8
Buscar en Vb net 2010

Lenguaje: Visual Basic .net 2005
B:eek: 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
Código:
Imports System.Data.SqlClient
despues será crear los objetos a nivel formulario
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
ahora vamos a crear un procedimiento para cargar el DataGridView

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
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:
Código:
My.Forms.FormularioX.CajadeTexto.Text = CInt(dgvBusquedaProductos.Item(0, dgvBusquedaProductos.CurrentRow.Index).Value) '0 es el numero de columna
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:
Código:
       bsProductos.Dispose()
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 ¬¬

Gracias me sirvio mucho tu ejemplo bueno lo tuve que adecuar a mi sistema pero al final funciono tal caul saludos.
 
Arriba