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