DataReader

20/08/2004 - 10:15 por Cadiz | Informe spam
Hola a todos:

Quisiera saber si hay alguna manera de ir al ultimo registro de un
DataReader en Visual Basic .NET. Con un ExecuteScalar se el numero de
registros que hay en una tabla, pero necesito ir al ultimo registro para
obtener el campo clave y asi, poder insertar un nuevo registro en una tabla
que esta relacionada.

Lo explico de otra forma:

- Imaginaros una aplicacion para realizar facturas, donde, entre otras
tablas, tengo una tabla que contiene los datos de la cabecera de la factura
y otra tabla con cada uno de los detalles de la misma (articulos). Entonces
doy de alta la cabecera, con el cliente, fecha, formas de pago, ... pero
luego, necesito saber el campo clave (autonumerico) del ultimo registro
insertado para poder insertar cada uno de los detalles y relacionarlos con
la cabecera.

Tabla Cabecera:

Codigo
CodigoCliente
Fecha
FormaPago
...

Tabla Detalles
Codigo
CodigoCabecera
CodigoArticulo
...

Las tablas estan relacionadas de la siguiente forma Cabecera.Codigo ->
Detalles.CodigoCabecera

No se si es posible hacerlo con un DataReader, se que con un DataSet,
DataTable, ... si se puede, pero me interesa el DataReader. En Visual Basic
6, este tipo de cuestiones lo resolvia yendo al ultimo registro de la
Cabecera, leia el campo clave (autonumerico) que acababa de insertar y luego
insertaba cada uno de los detalles con el campo clave leido anteriormente y
asi aseguraba la relacion entre las tablas. Si con DataReader no se puede
hacer esto y teneis otra forma de solucionar este problema, os rogaria que
me dierais alguna pista o la solucion del mismo.

Muchas gracias a todos.
Saludos.
 

Leer las respuestas

#1 LuisMiguel
20/08/2004 - 10:34 | Informe spam
Buenas.
No puedes ir al ultimo regisro de un DataReader.
Siempre puedes leer el ultimo registro con un Command o utilizar @@IDENTITY
para devolver la clave almacenada (creo que solo es para sqlserver)

Suerte
LuisMiguel
"Cadiz" escribió en el mensaje
news:
Hola a todos:

Quisiera saber si hay alguna manera de ir al ultimo registro de un
DataReader en Visual Basic .NET. Con un ExecuteScalar se el numero de
registros que hay en una tabla, pero necesito ir al ultimo registro para
obtener el campo clave y asi, poder insertar un nuevo registro en una


tabla
que esta relacionada.

Lo explico de otra forma:

- Imaginaros una aplicacion para realizar facturas, donde, entre otras
tablas, tengo una tabla que contiene los datos de la cabecera de la


factura
y otra tabla con cada uno de los detalles de la misma (articulos).


Entonces
doy de alta la cabecera, con el cliente, fecha, formas de pago, ... pero
luego, necesito saber el campo clave (autonumerico) del ultimo registro
insertado para poder insertar cada uno de los detalles y relacionarlos con
la cabecera.

Tabla Cabecera:

Codigo
CodigoCliente
Fecha
FormaPago
...

Tabla Detalles
Codigo
CodigoCabecera
CodigoArticulo
...

Las tablas estan relacionadas de la siguiente forma Cabecera.Codigo ->
Detalles.CodigoCabecera

No se si es posible hacerlo con un DataReader, se que con un DataSet,
DataTable, ... si se puede, pero me interesa el DataReader. En Visual


Basic
6, este tipo de cuestiones lo resolvia yendo al ultimo registro de la
Cabecera, leia el campo clave (autonumerico) que acababa de insertar y


luego
insertaba cada uno de los detalles con el campo clave leido anteriormente


y
asi aseguraba la relacion entre las tablas. Si con DataReader no se puede
hacer esto y teneis otra forma de solucionar este problema, os rogaria que
me dierais alguna pista o la solucion del mismo.

Muchas gracias a todos.
Saludos.


Preguntas similares