Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   SelectsSQL + ListBox (http://www.forosdelweb.com/f29/selectssql-listbox-242636/)

shadow_woman 28/10/2004 12:06

SelectsSQL + ListBox
 
Yo hago 3 SELECTS diferentes a una base de datos.Cada SELECT tiene un
SqlDataReader. Los 3 van metiendo los datos en el ListBox, pero no se como
lo hace que los Indices de las filas no los pone bien, es como si cada
DataReader empezase una nueva lista, no los pone consecutivos.
La "lista" es el ListBox.
El código es mas o menos asi (bueno los selects son un poquito mas complicados pero no creo que ese sea the problem):

Dim datos1, datos2, datos3 As SqlClient.SqlDataReader

datos1 = cmdSelect1.ExecuteReader
while datos1.Read
nombre = datos1("nombre").ToString
apellidos = datos1("apellidos").ToString
lista.Items.Add ( New ListItem(nombre + apellidos))
end While
datos1.Close

datos2 = cmdSelect2.ExecuteReader
while datos2.Read
dni = datos2("dni").ToString
lista.Items.Add ( New ListItem(dni))
end While
datos2.Close

datos3 = cmdSelect3.ExecuteReader
while datos3.Read
calle= datos3("calle").ToString
lista.Items.Add ( New ListItem(calle))
end While

Entonces se supone que con cada nuevo Item pondria un nuevo indice, es decir
indices consecutivos, pero no, cuando paso del "datos2" al "datos3" vuelve a
empezar los indices.
Es decir, si tengo 2 filas en el datos2 el indice podria ser "2" y "3",
luego al ejecutar el Datos3 e insertar los campos en la misma lista tendria
que seguir el indice como "4", "5",... pero no, vuelve al "2".
¿Alguien sabe como se puede solucionar esto?
Gracias Anticipadas

RootK 28/10/2004 12:26

NO sería mas limpio hacerlo mas o menos así y usar una variable para crear los índices.

Cita:

Dim iIndex as Integer
datos1 = cmdSelect1.ExecuteReader
while datos1.Read
nombre = datos1("nombre").ToString
apellidos = datos1("apellidos").ToString
lista.Items.Add ( New ListItem(iIndex, nombre + apellidos))
iIndex + =1
end While
datos1.Close

datos2 = cmdSelect2.ExecuteReader
while datos2.Read
dni = datos2("dni").ToString
lista.Items.Add ( New ListItem(iIndex, dni))
iIndex + = 1
end While
datos2.Close
...
...
Bueno, aunque no se si te refieres a índices que traes desde tu BD o índices creadas a partir de una variable (que fue el ejemplo que te puse..)

Salu2 :cool:

shadow_woman 29/10/2004 00:36

Es el indice de la lista, no lo traigo de la base de datos.
Por eso no lo entiendo.Se supone que tendrian que ser numeros consecutivos, por eso no lo entiendo.
Gracias :-)


La zona horaria es GMT -6. Ahora son las 19:41.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.