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

Buenas de nuevo!

Tras unos días dedicandome a otras secciones de mi programa vuelvo a esto... a ver he remplanteado la cosa como me has dicho gnzsoloyo. Es decir hago esto:

1) Primero recuperaría una tabla con la PK y los campos de nombre y apellido que necesito.
2) Luego usaría la tabla para llenar un listbox.
3) Al seleccionar un objeto en el ListBox me devuelve el índice del objeto seleccionado, y ese índice correspondería a la misma línea de la tabla de donde se sacó, entonces con ese índice recuperaría la PK que le corresponde.
4) Con esa PK solicitaría a la base todos los detalles para cargar.

Llego hasta el punto 3, es decir, relleno bien el listbox y tengo una tabla con todos los datos de la tabla CLIENTES. Código:

Código vb:
Ver original
  1. Private Sub btnInicioBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInicioBuscar.Click
  2.  
  3.         '************************************************************************************
  4.        '*   ESTADO: FUNCIONA                                                               *
  5.        '*   Objeto: btnInicioBuscar                                                        *
  6.        '*   Función: Busca la cadena de texto del textbox (tbInicioBuscar) en la base de   *
  7.        '*              datos y devuelve en el ListBox (lbInicioClientes) los resultados    *
  8.        '*                                                                                  *
  9.        '*   Versión: v1.0   07 Feb 2010   xxxxxxxxxxxxxxxxxxxxxxx ([email protected])     *
  10.        '*   Versión: v2.0   18 Feb 2010   xxxxxxxxxxxxxxxxxxxxxxx ([email protected])     *
  11.        '*                                                                                  *
  12.        '************************************************************************************
  13.  
  14.         ''Creamos la conexión a la base de datos definida como datasource en Settings
  15.        Dim conexion As New SQLite.SQLiteConnection(My.Settings.origConnectionString)
  16.         'Declaramos el DataTable que contendrá los datos.
  17.        Dim DataTable As New DataTable
  18.         'declaramos el DataAdapter y lo llenamos con la consulta
  19.        Dim DataAdapter As New SQLiteDataAdapter("SELECT * FROM CLIENTES WHERE nombre LIKE '%" & tbInicioBuscar.Text & "%' OR apellido1 LIKE '%" & tbInicioBuscar.Text & "%' OR apellido2 LIKE '%" & tbInicioBuscar.Text & "%' ORDER BY nombre", conexion)
  20.         'rellenamos el DataTable
  21.        DataAdapter.Fill(DataTable)
  22.  
  23.         'Vaciamos el Listbox antes de llenarlo
  24.        lbInicioClientes.Items.Clear()
  25.  
  26.         'Llenamos el listBox (lbInicioClientes)
  27.        Dim i As Integer
  28.         For i = 0 To DataTable.Rows.Count - 1
  29.             lbInicioClientes.Items.Add(DataTable.Rows(i).Item("nombre") & " " & DataTable.Rows(i).Item("apellido1") & " " & DataTable.Rows(i).Item("apellido2"))
  30.         Next
  31.  
  32.     End Sub

Como ves, creo un DataAdapter, lo copio todo a una tabla y relleno el listbox. Ahora quiero empezar a programar el evento "SelectedIndexChanged"

Código vb:
Ver original
  1. Private Sub lbInicioClientes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbInicioClientes.SelectedIndexChanged

La historia que tengo ahora, es que no se como ver la DataTable desde este evento. He probado poniendo en Public el evento del boton donde creo el DataTable y demás, pero sigo sin poder ver esa tabla.

Por otro lado como enlazo lo que es la tabla con el item seleccionado para hacer la consulta?

Mil gracias.

Última edición por AlterElt; 17/02/2010 a las 18:47