Hola a todos;
Tengo el siguiente codigo:
//se carga en un SqlDataReader el resultado de una consulta
SqlDataReader oReader = oCmd.ExecuteReader ();
//Coleccion Generic de la clase Modulo
Modulos Modulos = new Modulos () ;
Modulo oMod = new Modulo(); // (1)
while (oReader.Read ())
{
Modulo oMod = new Modulo(); // (2)
oMod.IdModulo = (int) oReader["IdModulo"];
oMod.IdProducto = (int) oReader ["IdProducto"];
oMod.NombreModulo = oReader["NombreModulo"].ToString ();
//agrega nuevo elemento a la coleccion
Modulos.Add (oMod);
}
La duda que tengo es que si yo comento la linea marcada con (2) dentro del
bucle y solo instancio un solo objeto de la clase Modulo ( linea marcada con
(1) ) , todos los elementos de la coleccion quedan iguales al finalizar el
bucle, es decir, si la consulta me devuelve 1,2,3,4, en la coleccion yo
tengo 4,4,4,4
Si dejo la instancia del objeto dentro del bucle esto no ocurre.
No acabo de entender este comportamiento, puede alguien explicarmelo?
La otra consulta que tengo es si existe otra forma mas eficiente de cargar
una coleccion con el resultado de la consulta obtenida por SqlCommand.
Muchas gracias
Saludos
Guillermo
AG-CBA-ARG
Leer las respuestas