Ver Mensaje Individual
  #7 (permalink)  
Antiguo 06/09/2009, 15:56
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Error código consulta

Pareciera por algunos detalles que estás más habituado a usar VB. 6.0 que .Net. Tal vez me equivoque.
La solución la puedes implementar de muchas formas, a través de diferentes objetos que sean capaces de construir colecciones, aunque no uses específicamente un objeto Collection.
Yo suelo usar ArrayList o HashTables, que crecen dinámicamente según lo que se le agregue, e incluso pueden contener objetos distintos en cada entrada.
También suelo usar arrays de objetos cuando la clase la creo yo mismo, como es tu caso.
En este caso podría ser:
Código vb.net:
Ver original
  1. Dim contactos as New ArrayList
  2. Dim persona as Contacto
  3. For Each r As DataRow In TablaDevuelta.Rows
  4.    persona = New Contacto
  5.     persona.setnombre = Convert.ToString(r.Item("nombre"))
  6.     persona.setapellido = Convert.ToString(r.Item("apellido1"))
  7.    contactos.Add(persona)
  8. Next

Al terminar de ejecutarse, la variable r, que se creó en el momento de iniciar el For Each..., desaparece, y el ArrayList contactos contiene una colección de objetos Contacto con sus nombres y apellidos cargados.

El uso de System.Convert.ToString() es obligatorio en VB.Net 2005 de acuerdo a las configuraciones del proyecto, por lo que hemos encontrado recientemente en algunas migraciones desde VB.Net 2003, por eso lo incluyo. Aún no estoy totalmente seguro de si es necesario, aunque sí lo es en el caso de valores sin signo, por ejemplo.

En un ArrayList, los objetos son accedidos por medio del método Item(subindice), por ejemplo, usándolo para cargar un textBox:

Código vb.net:
Ver original
  1. TextBox1.Text = contactos.Item(2).DarNombre

(suponiendo que DarPersona sea un método o propiedad que devuelva el nombre)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)