Visual Basic.NET - buscar mientras se escribe

 
Vista:
Imágen de perfil de Francisco Javier Medrano Salez
Val: 144
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

buscar mientras se escribe

Publicado por Francisco Javier Medrano Salez (94 intervenciones) el 16/09/2015 01:03:48
Hola a todos:
Quiero que si el usuario teclea en un textbox las primeras letras de un nombre, estos nombres se desplieguen en un datagrid; si escribe s que enliste todos los que inician con "s", si escribe "sa", que se enlisten los nombres que inician con "sa" y asi sucesivamente; este es el codigo pero no logro hacerlo correctamente. Alguien puede ayudarme? Gracias de antemano:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Imports System.Data
Imports System.Data.OleDb
Public Class frmPrincipal
    Private conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\est22.mdb"
    Private cmd As OleDbConnection = New OleDbConnection(conn)
    Private alumDataSet As DataSet
    Private tAdapter As OleDbDataAdapter = New OleDbDataAdapter
    Dim alum As String
    Private iniciando As Boolean = True
 
    Private Sub frmPrincipal_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        txtnombres.Text = ""
    End Sub
 
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        End
    End Sub
 
 
    Private Sub txtnombres_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtnombres.TextChanged
        Dim lista As Byte
        If txtnombres.Text <> "" Then
            tAdapter.SelectCommand = New OleDbCommand("SELECT * FROM alumnos where nombre =  '" + txtnombres.Text + "'", cmd)
            alumDataSet = New DataSet
            alumDataSet.Tables.Add("alumnos")
            tAdapter.Fill(alumDataSet.Tables("alumnos"))
            lista = alumDataSet.Tables("alumnos").Rows.Count
            If lista <> 0 Then
                DataGridView1.DataSource = alumDataSet
                DataGridView1.DataMember = "nombre"
            End If
        End If
    End Sub
End Class
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

buscar mientras se escribe

Publicado por David (45 intervenciones) el 16/09/2015 11:04:30
El WHERE de la consulta 23 de tu código está mal. Para lo que quieres debería ser

"SELECT * FROM alumnos WHERE nombre Like '" + txtnombres.Text + "%'"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Francisco Javier Medrano Salez
Val: 144
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

buscar mientras se escribe

Publicado por Francisco Javier Medrano Salez (94 intervenciones) el 17/09/2015 00:58:43
Gracias amigo David, me ha funcionado muy bien. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de giancarlo
Val: 465
Bronce
Ha disminuido 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

buscar mientras se escribe

Publicado por giancarlo (409 intervenciones) el 16/09/2015 17:57:09
Te puede servir este link http://www.lawebdelprogramador.com/foros/Visual-Basic.NET/1512021-Filtrar-data-grid-con-dataset.html

Recuerda que si tu pones el simbolo "=" buscara un registro que tenga el valor igual al que estas buscando, si tu quieres que empieze termine o contenga una cierta palabra, deberias usar "like" y el simbolo "%" como comodin, asi:

where columna='busqueda' --buscara un registro que sea igual a la palabra busqueda
where columna like 'busqueda' --buscara un registro que sea igual a la palabra busqueda
where columna like 'bus%' --buscara un registro que empieze con la palabra bus
where columna like '%bus' --buscara un registro que termine con la palabra bus
where columna like '%bus%' --buscara un registro que contenga la palabra bus, independiente si este en el medio, inicio o fin
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Francisco Javier Medrano Salez
Val: 144
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

buscar mientras se escribe

Publicado por Francisco Javier Medrano Salez (94 intervenciones) el 17/09/2015 00:59:33
Gracias Amigo Giancarlo, muy bien explicada tu ayuda. ya probé y me ha funcionado. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar