Gracias por la respuesta, la verdad que me estoy volviendo loco xD
Entiendo que lo correcto sería pedir a la base de datos la tabla clientes entera y luego meter en el listbox solo nombre, apellido1 y apellido2, no? Tienes razón de al decir que me será más práctico traerme toda la tabla clientes para no hacer dos consultas, pero ¿me recomiendas traerme también una segunda tabla llamada datoscliente (con un join), que contiene datos de medidas y tal que pretendo mostrar en otro listbox con columnas? o es preferible hacer una segunda consulta?
Por ahora tengo esto:
Código vb:
Ver originalPrivate Sub btnInicioBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInicioBuscar.Click
'Creamos la conexión a la base de datos definida como datasource en Settings
Dim oConexion As New SQLite.SQLiteConnection(My.Settings.Default.origConnectionString)
'Consulta a la base de datos
Dim oComando As New SQLite.SQLiteCommand("SELECT * FROM clientes WHERE nombre LIKE '%" & tbInicioBuscar.Text & "%' OR apellido1 LIKE '%" & tbInicioBuscar.Text & "%' OR apellido2 LIKE '%" & tbInicioBuscar.Text & "%' ORDER BY nombre", oConexion)
'Creamos el DataReader
Dim oDataReader As SQLite.SQLiteDataReader
'Abrimos la conexión
oConexion.Open()
'Llenamos el datareader
oDataReader = oComando.ExecuteReader() 'obtiene un objeto datareader
'Vaciamos el Listbox antes de llenarlo
lbInicioClientes.Items.Clear()
'Recorremos las filas del DataReader y agregamos al ListBox
While oDataReader.Read
'Agregamos nombres y apellidos al ListBox
'IF oDataReader.
lbInicioClientes.Items.Add(oDataReader("nombre") & " " & oDataReader("apellido1") & " " & oDataReader("apellido2"))
'selectFirst = True
End While
'Cerramos el DataReader
oDataReader.Close()
'Cerramos la conexión a la base de datos
oConexion.Close()
End Sub
lbInicioClientes: es el ListBox donde pongo lo que quiero buscar.
tbInicioBuscar: es el TextBox donde escribo lo que quiero buscar.
btnInicioBuscar: es el Botón que pulso para empezar a buscar.
Que en principio, con la consulta tal y como la he cambiado ya me busca como quería lo del textbox, es decir, introduciendo nombre o apellidos (te busca en las tres columnas), hasta ahí bien.
Solo una cuestión más de esto:
Como se hace para que al introducir texto en un textbox y pulsar enter me haga lo mismo que al hacer click en el boton? Es decir, que escribas y le des a enter y ya busque... es una tonteria, pero aporta usabilidad xD
Ahora solo me queda la duda de como pasar lo del datareader a una tabla para luego pasarlo a los respectivos textboxes y como saber que linea del textbox esta seleccionada (no hay algún tipo de índice o algo así? he visto la propiedad .Selecteditem y Selectedindex, pero no se como funcionan....)
Respecto a lo de pasar el datareader a una tabla..... exactamente que significa que "oDataReader" sea del tipo "SQLite.SQLiteDataReader"? Si que veo que se trae cada vez una fila (dentro del bucle while), pero como puedo copiar eso a una tabla?
¿Se pueden usar dos fors al estilo C usando indices? tabla[10][10]
Se que son muchas dudas, pero estoy bastante novato en VB :S
Saludos y gracias por la ayuda.