en la variable dr se asigna un DataReader eso es todo..
Gracias por tu ayuda..!!!
Saludos
Mauricio
Bueno al decir que tipo, esperaba que pusiersa la declaración, al final del post te digo por qué ...
De entrada puedes hacer un rendimiento más óptimo al bucle si conoces el tipo de datos que tratas de recuperar. el datareader recupera los datos como objetos, por ello luego debes hacer una conversión al tipo deseado utilizando .ToString . si sabes que es un String y un integer invócalos de esta manera:
dr.gestString("SPROY_NOMBRE")
dr.GetInt32("CTO_ID")
Con ello se ahorra la conversión desde object al tipo de datos que es.
Otra mejora que puedes hacer es que si conoces la posición del campo dentro de la tabla te refieras con su índice en vez de con su nombre. Esto tiene una desventaja que es preciso conocer, si en un futuro haces modificaciones en la tabla y el campo 'SPROY_NOMBRE' antes era (pongamos) el campo nº 2 y ahora es el campo nº 3, no nos devolverá lo que esperamos... Por contra sucede la inversa, si en un futuro cambiamos el nombre del campo 2 que antes se llamaba 'SPROY_NOMBRE' y ahora se llama 'NOMBRE_SPROY' , no lo encontrará pero todavía si lo encontraría referenciando el campo 2. en fin esto son decisiones que deben tomarse cuando uno diseña y debe decidir si hay cambios en un futuro como serán los cambios, añadir, quitar,reordenar campos ? o incluso cambiar nombres de campos.. ?
Esto se haría del siguiente modo:
dr.gestString(2) ' el campo eneavo que le corresponda.
dr.GetInt32(6) ' por poner un ejemplo...
Sin embargo con esto sólo se consiguen mejoras no muy significativas (para el problema que supuestamente tu tienes). Me temo que el problema lo tienes en la propia declaración del DataReader, qué es lo que realmente quería ver cuando te solicitaba que tipo de datos era dr, el nombre lo sugiere (aunque prefiero verificarlo), sin embargo esperaba que pusieras la declaración.
Ponme la declaración de la línea:
dim dr as sqldatareader = Command.Execute....( .... )
Es con esto (dr= command.Exec....) , con lo que pudo confirmar mis sospechas e indicarte la solución.