Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/02/2010, 16:36
AlterElt
 
Fecha de Ingreso: febrero-2010
Mensajes: 63
Antigüedad: 14 años, 9 meses
Puntos: 0
Rellenar campos a partir de consulta SQL después de seleccionar en listbox

Buenas!

Estoy haciendo una aplicación en VB .net con visual studio 2005 (framework 2.0, si no me equivoco jeje) y SQLite (funciona muy parecido a SQLServer u otros, así que una respuesta con un ejemplo con estas bases de datos también me valdría para pillar la idea... o eso creo XD)

Bueno, el caso es que en dicha aplicación tengo los siguientes elementos:

textbox1
boton
listbox
Una serie de textboxes

Bueno, lo que quiero hacer es que al ingresar un texto en el textbox1 y darle a buscar me muestre los resultados en un listbox y luego en el listbox seleccionar el registro concreto sobre el que quiero mostrar datos

La una busqueda es a una base de datos con una tabla "clientes" compuesta por varias columnas (nombre, apellido1, apellido2, telefono, etc)).

El caso es que consigo mostrar los resultados en el listbox pero lo que no se como hacer es que al seleccionar el registro concreto se me rellenen los textboxes con los datos de esa persona.

Para que nos entendamos un ejemplo sería:

Escribo "Juan" en el textbox1, le doy al botón buscar (me falta ponr la busqueda a partir del textbox1)

El programa me muestra los resultados en el listbox. Un detalle es que en el listbox imprimo nombre+apellido1+apellido2. Esto lo tengo hecho ya:


Código vb:
Ver original
  1. Private Sub btnInicioBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInicioBuscar.Click
  2.         'Creamos la conexión a la base de datos definida como datasource en Settings
  3.        Dim oConexion As New SQLite.SQLiteConnection(My.Settings.Default.origConnectionString)
  4.  
  5.         'Consulta a la base de datos
  6.        Dim oComando As New SQLite.SQLiteCommand("SELECT id,nombre,apellido1,apellido2 FROM clientes ORDER BY nombre", oConexion)
  7.  
  8.         'Creamos el DataReader
  9.        Dim oDataReader As SQLite.SQLiteDataReader
  10.         'Abrimos la conexión
  11.        oConexion.Open()
  12.         'Llenamos el datareader
  13.        oDataReader = oComando.ExecuteReader() 'obtiene un objeto datareader
  14.  
  15.         'Vaciamos el Listbox antes de llenarlo
  16.        lbInicioClientes.Items.Clear()
  17.         'Recorremos las filas del DataReader y agregamos al ListBox
  18.        While oDataReader.Read
  19.             'Agregamos nombres y apellidos al ListBox
  20.            lbInicioClientes.Items.Add(oDataReader("nombre") & " " & oDataReader("apellido1") & " " & oDataReader("apellido2"))
  21.         End While
  22.         'Cerramos el DataReader
  23.        oDataReader.Close()
  24.         'Cerramos la conexión a la base de datos
  25.        oConexion.Close()
  26.     End Sub

Entonces supongamos que en el listbox me devuelve:

Juan Sanchez Martinez
Juan Lopez Díaz

Mi pregunta es: como hago para que al pulsar en uno de esos campos me rellene los textboxes con los datos de esa persona? (creo que sería con el evento click del listbox, pero no se como apuntar en concreto al campo seleccionado y como quedarme con los datos para luego hacer la consulta que me rellene los texboxes...)

Y otra cosa... como hago para buscar por nombre y apellido al darle a buscar?

Saludos y gracias desde ya!

Última edición por AlterElt; 07/02/2010 a las 17:29