Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Pasar DataReader a DataSet

152 views
Skip to first unread message

Asier

unread,
Apr 28, 2004, 3:29:30 AM4/28/04
to
Hola grupo,

¿Como puedo pasar el contenido de un DataReader a un DataSet?

Gracias

Leonardo Diez Dolinski

unread,
Apr 28, 2004, 4:02:02 AM4/28/04
to
Hola Asier,
Eso es justamente lo que hace un DataAdapter. Tienes que darle el SELECT
al DataAdapter y luego llamar al método Fill con el DataSet que quieres
llenar con datos.

saludos,

--
Leonardo Diez Dolinski
MSCD - MVP
Equipo Danysoft
v...@danysoft.com
www.danysoft.com

"Asier" <asie...@euskalnet.net> wrote in message
news:uLmYnKPL...@tk2msftngp13.phx.gbl...

Asier

unread,
Apr 28, 2004, 5:37:35 AM4/28/04
to
Hola Leonardo,

No es lo que yo quiero. Tengo una funcion que accede a la BD con
SqlDataReader. El resultado lo quiero asignar a un DataSet, pero sin usar
DataAdapter.

żMe entiendes?
Gracias
"Leonardo Diez Dolinski" <v...@danysoft.com> escribió en el mensaje
news:ubnFmcPL...@TK2MSFTNGP12.phx.gbl...


> Hola Asier,
> Eso es justamente lo que hace un DataAdapter. Tienes que darle el
SELECT
> al DataAdapter y luego llamar al método Fill con el DataSet que quieres
> llenar con datos.
>
> saludos,
>
> --
> Leonardo Diez Dolinski
> MSCD - MVP
> Equipo Danysoft
> v...@danysoft.com
> www.danysoft.com
>
> "Asier" <asie...@euskalnet.net> wrote in message
> news:uLmYnKPL...@tk2msftngp13.phx.gbl...
> > Hola grupo,
> >

> > żComo puedo pasar el contenido de un DataReader a un DataSet?
> >
> > Gracias
> >
> >
> >
>
>
>

Leonardo Diez Dolinski

unread,
Apr 28, 2004, 6:13:12 AM4/28/04
to
Te entiendo, pero creo que estas queriendo reinventar la rueda. Te explico
como funciona ADO.NET

DataReader: Permite leer los resultados recibidos del servidor.
|
Comando: Permite enviar T-SQL a la base de datos. Cuando manda un SELECT
puede devolver un DataReader
|
Conexion: Permite conectar a la base de datos.

Esto es lo que debes estar utilizando en tu función.

Ahora, el DataAdapter:
- Tiene 4 objetos comando, uno para cada operación sobre registros
- Tiene un objeto DataReader (aunque no es público)

Por lo tanto, cuando tu llamas al método Fill, el DataAdapter abre una
conexión, ejecuta el comando SELECT, obtiene un DataReader, lee los datos y
los guarda en el DataSet que le han pasado.

Como verás, la primera parte (abrir conexión, ejecutar el comando SELECT y
obtener un DataReader) debe ser lo mismo que estás haciendo tu. Y lo que
quieres hacer es la segunda parte (recorrer los datos obtenidos y guardarlos
en el DataSet). Por eso creo que, salvo que necesites algo muy particular,
la mejor forma de llenar un DataSet con datos es utilizando un DataAdapter.

Si es imposible cambiar la función, no tienes ningún objeto que haga eso,
tienes que:
- crear la tabla en el DataSet si no existe
- crear las columnas de la tabla recién creada
- recorrer el DataReader con el método Read
- por cada fila obtenida:
- crear una fila nueva
- por cada columna:
- llamar al método Get.... pasando el número de columna como
parámetro
- guardar el valor en la propiedad Item, pasando el número de
columna como índice.

Piensa que además, esto es lo básico que hay que hacer, también habría que
crear una clave primaria en la tabla, verificar que los valores no sean
incorrectos, etc... Todo eso que hace el DataAdapter.

Espero que mi respuesta te sirva.

saludos,

--
Leonardo Diez Dolinski
MSCD - MVP
Equipo Danysoft
v...@danysoft.com
www.danysoft.com


"Asier" <asie...@euskalnet.net> wrote in message

news:O2$#yOQLEH...@tk2msftngp13.phx.gbl...


> Hola Leonardo,
>
> No es lo que yo quiero. Tengo una funcion que accede a la BD con
> SqlDataReader. El resultado lo quiero asignar a un DataSet, pero sin usar
> DataAdapter.
>

> ¿Me entiendes?


> Gracias
> "Leonardo Diez Dolinski" <v...@danysoft.com> escribió en el mensaje
> news:ubnFmcPL...@TK2MSFTNGP12.phx.gbl...
> > Hola Asier,
> > Eso es justamente lo que hace un DataAdapter. Tienes que darle el
> SELECT
> > al DataAdapter y luego llamar al método Fill con el DataSet que quieres
> > llenar con datos.
> >
> > saludos,
> >
> > --
> > Leonardo Diez Dolinski
> > MSCD - MVP
> > Equipo Danysoft
> > v...@danysoft.com
> > www.danysoft.com
> >
> > "Asier" <asie...@euskalnet.net> wrote in message
> > news:uLmYnKPL...@tk2msftngp13.phx.gbl...
> > > Hola grupo,
> > >

> > > ¿Como puedo pasar el contenido de un DataReader a un DataSet?
> > >
> > > Gracias
> > >
> > >
> > >
> >
> >
> >
>
>
>


William Fernandez

unread,
Apr 28, 2004, 7:55:00 AM4/28/04
to
Una forma "DIRECTA" de hacer no existe, lo que podrias
hacer es recorrer el DataReader, verificar la estructura
crear el DataSet y rellenarlo Reg. a Reg. con la inf.
contenida en el DataReader.

Pienso igual que el otro chico, estas queriendo
reinventar la rueda, si usas en tu func. un DataAdapter y
un DataSer directamente tienes menos complicaciones de
diseño.

Saludos


>-----Mensaje original-----

>.
>

Asier

unread,
Apr 28, 2004, 9:41:06 AM4/28/04
to
Muchas gracias, perfecto.


"Leonardo Diez Dolinski" <v...@danysoft.com> escribió en el mensaje

news:uxOY5lQ...@TK2MSFTNGP10.phx.gbl...

0 new messages