Pasar de SqlDataReader a DataGrid

13/10/2006 - 16:26 por Alan | Informe spam
Holas...
Tengo un objeto SqlDataReader que almacena informacion traída de la Bd y
quisiera dicha información pasarla a un DataGrid, como se haría eso?
Para este caso NO es un aplicativo Web, así que no puedo usar:
DataGrid.DataSource = SqlDataReader;
DataGrid.Databind();

que puedo hacer?
 

Leer las respuestas

#1 Alberto Poblacion [MVP]
13/10/2006 - 17:49 | Informe spam
"Alan" wrote in message
news:
Tengo un objeto SqlDataReader que almacena informacion traída de la Bd y
quisiera dicha información pasarla a un DataGrid, como se haría eso?
Para este caso NO es un aplicativo Web, así que no puedo usar:
DataGrid.DataSource = SqlDataReader;
DataGrid.Databind();

que puedo hacer?



No tiene sentido. El SqlDataReader NO almacena información. Se limita a
traer uno por uno los registros y el programa que está trayéndolos con un
bucle es el que los almacena si quiere. Un ejemplo de programa que hace
precisamente eso es el método Fill del SqlDataAdapter. Por dentro crea un
datareader y se mete en un bucle trayendo registros y metiéndolos en un
dataset hasta que termina, y entonces cierra su SqlDataReader interno porque
como es de solo marcha alante y solo lectura y no almacena datos, pues
entonces ya no vale para nada más una vez que ha sido utilizado. El problema
del DataAdapter es que no le puedes pasar directamente el DataReader; tienes
que pasarle un Command y dejar que él construya el DataReader a partir del
Command. ¿Por qué no haces eso? Si tienes un SqlDataReader es porque antes
lo has construído con un SqlCommand. Entonces, ¿por qué no le pasas ese
SqlCommand a un SqlDataAdatper y dejas que él construya el SqlDataReader?
Una vez hecho eso, el DataAdapter te rellena un DataSet, y el DataSet se lo
asignas al DataSource del DataGrid, y listo.

Preguntas similares