¿Como puedo pasar el contenido de un DataReader a un DataSet?
Gracias
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...
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
> >
> >
> >
>
>
>
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
> > >
> > >
> > >
> >
> >
> >
>
>
>
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-----
>.
>
"Leonardo Diez Dolinski" <v...@danysoft.com> escribió en el mensaje
news:uxOY5lQ...@TK2MSFTNGP10.phx.gbl...