Hacer Update en Dataset desconectado

16/03/2006 - 00:37 por Jandro Casanovas | Informe spam
Buenas!

El caso es que vengo de VB6 y ahora me encuentro con que ya no se hacer
funcionar el nuevo ADO.NET con bases de datos.

El caso es que con VB6 creaba las conexiones mediante codigo y cargaba
el recordset con los registros que yo queria. Luego los modificaba a mi
antojo y para grabar los datos en la base de datos hacia la sentencia
UPDATE sin necesitar nada mas.

El caso es que ahora cuando intento hacer un update con el sqladapter me
dice que necesito tener un comando INSERT (esto en el caso de que haya
añadido nuevos registros).

¿Hay alguna manera de darle solo a UPDATE y que el solo haga las
modificaciones que yo he hecho en el dataset??

En caso negativo, he de hacer una sentencia SQL para cada tipo de
insert, update y delete que hago en un programa? ... pueden ser hasta
100 diferentes...


MILES DE GRACIAS

SALUDOS!!!

Preguntas similare

Leer las respuestas

#1 Miguel A. Nievas - MCAD.NET
16/03/2006 - 22:08 | Informe spam
Si podes.. tenes un metodo que se llama GetChange que te devuelve un dataset
con los cambios
Dim ods As New DataSet
ods.GetChanges()

Miguel A. Nievas
Microsoft IT Academy Instructor
MCAD.NET



"Jandro Casanovas" wrote:

Buenas!

El caso es que vengo de VB6 y ahora me encuentro con que ya no se hacer
funcionar el nuevo ADO.NET con bases de datos.

El caso es que con VB6 creaba las conexiones mediante codigo y cargaba
el recordset con los registros que yo queria. Luego los modificaba a mi
antojo y para grabar los datos en la base de datos hacia la sentencia
UPDATE sin necesitar nada mas.

El caso es que ahora cuando intento hacer un update con el sqladapter me
dice que necesito tener un comando INSERT (esto en el caso de que haya
añadido nuevos registros).

¿Hay alguna manera de darle solo a UPDATE y que el solo haga las
modificaciones que yo he hecho en el dataset??

En caso negativo, he de hacer una sentencia SQL para cada tipo de
insert, update y delete que hago en un programa? ... pueden ser hasta
100 diferentes...


MILES DE GRACIAS

SALUDOS!!!


Respuesta Responder a este mensaje
#2 Jandro Casanovas
16/03/2006 - 23:47 | Informe spam
I que ventajas / inconvenientes tiene??

Saludos,

Janscas

Miguel A. Nievas - MCAD.NET escribió:
Si podes.. tenes un metodo que se llama GetChange que te devuelve un dataset
con los cambios
Dim ods As New DataSet
ods.GetChanges()

Miguel A. Nievas
Microsoft IT Academy Instructor
MCAD.NET



"Jandro Casanovas" wrote:

Buenas!

El caso es que vengo de VB6 y ahora me encuentro con que ya no se hacer
funcionar el nuevo ADO.NET con bases de datos.

El caso es que con VB6 creaba las conexiones mediante codigo y cargaba
el recordset con los registros que yo queria. Luego los modificaba a mi
antojo y para grabar los datos en la base de datos hacia la sentencia
UPDATE sin necesitar nada mas.

El caso es que ahora cuando intento hacer un update con el sqladapter me
dice que necesito tener un comando INSERT (esto en el caso de que haya
añadido nuevos registros).

¿Hay alguna manera de darle solo a UPDATE y que el solo haga las
modificaciones que yo he hecho en el dataset??

En caso negativo, he de hacer una sentencia SQL para cada tipo de
insert, update y delete que hago en un programa? ... pueden ser hasta
100 diferentes...


MILES DE GRACIAS

SALUDOS!!!





Respuesta Responder a este mensaje
#3 Jandro
21/03/2006 - 19:46 | Informe spam
Por favor si puedes responde que es un tema que me tiene mosca.


Saludos,

Jandro


Jandro Casanovas escribió:
I que ventajas / inconvenientes tiene??

Saludos,

Janscas

Miguel A. Nievas - MCAD.NET escribió:
Si podes.. tenes un metodo que se llama GetChange que te devuelve un
dataset con los cambios
Dim ods As New DataSet
ods.GetChanges()

Miguel A. Nievas
Microsoft IT Academy Instructor MCAD.NET



"Jandro Casanovas" wrote:

Buenas!

El caso es que vengo de VB6 y ahora me encuentro con que ya no se
hacer funcionar el nuevo ADO.NET con bases de datos.

El caso es que con VB6 creaba las conexiones mediante codigo y
cargaba el recordset con los registros que yo queria. Luego los
modificaba a mi antojo y para grabar los datos en la base de datos
hacia la sentencia UPDATE sin necesitar nada mas.

El caso es que ahora cuando intento hacer un update con el sqladapter
me dice que necesito tener un comando INSERT (esto en el caso de que
haya añadido nuevos registros).

¿Hay alguna manera de darle solo a UPDATE y que el solo haga las
modificaciones que yo he hecho en el dataset??

En caso negativo, he de hacer una sentencia SQL para cada tipo de
insert, update y delete que hago en un programa? ... pueden ser hasta
100 diferentes...


MILES DE GRACIAS

SALUDOS!!!









Respuesta Responder a este mensaje
#4 Miguelo
04/05/2006 - 14:40 | Informe spam
Prueba a hacer esto siendo da el DataAdapter que has generado con la sql
correspondiente.

SqlCommandBuilder cb = new SqlCommandBuilder(da);
da.UpdateCommand = cb.GetUpdateCommand();
da.DeleteCommand = cb.GetDeleteCommand();
da.InsertCommand = cb.GetInsertCommand();

De esta manera internamenten se generarán la insert, update y delete que
necesites y cuando llames a da.Update en función del estado de las filas se
realizara la operación oportuna. De esta manera evitas escribir el codigo de
las sentencias sql.

Espero que sirva.

Miguelo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida