INSTRUCCION UPDATE DEL OBJETO DATA ADAPTER!?

22/03/2005 - 15:41 por Francisco Leiva | Informe spam
Tengan todos un buen día

Les expongo mi problema: tengo un objeto DataAdapter
(especificamente un OledbDataAdapter) enlazado a una tabla en SQLServer. Al
configurar el objeto, se crean bien las instrucciones INSERT, UPDATE y
DELETE. Mi objeto Adapter luego llena un DataSet. Sobre el DatSet hago
varias operaciones, como agregar filas, modificar, y eliminar,... Pero el
problema es que la eliminacion no la hace despues de que yo llamo al metodo
Update de mi objeto Adapter, solo me realiza las inserciones y
modificaciones en la tabla, pero no las eliminaciones
Alguien sabe a que se debe esto!!??
Les agradecería mucho su ayuda

Gracias de Antemano:
Francisco Leiva

Preguntas similare

Leer las respuestas

#1 Carlos Durán Urenda
22/03/2005 - 16:02 | Informe spam
Hola Francisco

A ver si puedo ayudarte, no se si para llenar los comandos Insert, Update y
Delete estas utilizando el CommandBuilder o los estas llenando a mano, si lo
estas haciendo a mano, podria ser un error en el comando de elminiacion.

Por otra parte, al procesar el comando Update del Adaptador, las operaciones
se realizan en un determinado orden, que no siempre puede ser el
conveniente, y si tienes configurada la poriedad del adaptador
ContinueUpdateOnerrors=True o bien estas atrapando las excepciones, es
posible que no alcances a percibir si esta ocurriendo un error en el Update.

Creo... , que de forma predeterminada el update ejecuta primero la insersion
de datos, luego la modificacion y por ultimo la eliminacion de los datos,
pero... pongamos un ejemplo

Digamos que tienes un registro con clave principal 100, lo eliminas y
despues insertas otro registro con clave 100 (tambien), al ejecutar el
update primero intentaria insertar las nuevas filas, lo que produciría un
error debido a que aun no se elimina el registro que contiene la misma
clave.

Posiblemente no sea tu caso, pero es posible cambiar el orden en el cual se
ejecutan los comandos de insercion, actualizacion y eliminacion, para evitar
este tipo de conflictos

Dim DT as Datatable= DS.Tables("TuTabla")

'Procesar primero las eliminaciones
Adaptador.Update (DT.Select(Nothing, Nothing, DataViewRowState.Deleted)
'Procesar luego las actualizaciones
Adaptador.Update (DT.Select(Nothing, Nothing,
DataViewRowState.ModifiedCurrent)
'Por ultimo las inserciones
Adaptador.Update (DT.Select(Nothing, Nothing, DataViewRowState.Added)


Espero esto te sirva

Saludos
Carlos Durán

"Francisco Leiva" escribió en el mensaje
news:u$
Tengan todos un buen día

Les expongo mi problema: tengo un objeto DataAdapter
(especificamente un OledbDataAdapter) enlazado a una tabla en SQLServer.
Al
configurar el objeto, se crean bien las instrucciones INSERT, UPDATE y
DELETE. Mi objeto Adapter luego llena un DataSet. Sobre el DatSet hago
varias operaciones, como agregar filas, modificar, y eliminar,... Pero el
problema es que la eliminacion no la hace despues de que yo llamo al
metodo
Update de mi objeto Adapter, solo me realiza las inserciones y
modificaciones en la tabla, pero no las eliminaciones
Alguien sabe a que se debe esto!!??
Les agradecería mucho su ayuda

Gracias de Antemano:
Francisco Leiva


Respuesta Responder a este mensaje
#2 Francisco Leiva
22/03/2005 - 16:28 | Informe spam
Saludos Carlos.
Las instrucciones las creo con el CommandBuilder. La propiedad
ContinueUpdateOnError esta en False, y capturo excepciones al momento de
ejecutar el metodo Update del Adaptador,..Probe poner las instrucciones como
me recomendaste poniendo primero las eliminaciones, luego modificiaciones y
por ultimo inserciones. Probe hacer solo una eliminación en mi dataset y
luego correr el metodo Update del Adapter y no me tira ninguna excepción
pero tampoco se refleja el cambio en la base de datos de manera que cuando
vuelvo a cargar los datas en mi datase siempre esta la fila que elimino,
aunque sea solo esa la operacion que realize. No se adonde puede estar el
Error :(...
Pero muchass gracias por tu ayuda, si conces algo mas te agradecería lo
compartieras :)

Gracias
Francisco Leiva

"Carlos Durán Urenda" escribió en el mensaje
news:
Hola Francisco

A ver si puedo ayudarte, no se si para llenar los comandos Insert, Update


y
Delete estas utilizando el CommandBuilder o los estas llenando a mano, si


lo
estas haciendo a mano, podria ser un error en el comando de elminiacion.

Por otra parte, al procesar el comando Update del Adaptador, las


operaciones
se realizan en un determinado orden, que no siempre puede ser el
conveniente, y si tienes configurada la poriedad del adaptador
ContinueUpdateOnerrors=True o bien estas atrapando las excepciones, es
posible que no alcances a percibir si esta ocurriendo un error en el


Update.

Creo... , que de forma predeterminada el update ejecuta primero la


insersion
de datos, luego la modificacion y por ultimo la eliminacion de los datos,
pero... pongamos un ejemplo

Digamos que tienes un registro con clave principal 100, lo eliminas y
despues insertas otro registro con clave 100 (tambien), al ejecutar el
update primero intentaria insertar las nuevas filas, lo que produciría un
error debido a que aun no se elimina el registro que contiene la misma
clave.

Posiblemente no sea tu caso, pero es posible cambiar el orden en el cual


se
ejecutan los comandos de insercion, actualizacion y eliminacion, para


evitar
este tipo de conflictos

Dim DT as Datatable= DS.Tables("TuTabla")

'Procesar primero las eliminaciones
Adaptador.Update (DT.Select(Nothing, Nothing, DataViewRowState.Deleted)
'Procesar luego las actualizaciones
Adaptador.Update (DT.Select(Nothing, Nothing,
DataViewRowState.ModifiedCurrent)
'Por ultimo las inserciones
Adaptador.Update (DT.Select(Nothing, Nothing, DataViewRowState.Added)


Espero esto te sirva

Saludos
Carlos Durán

"Francisco Leiva" escribió en el mensaje
news:u$
> Tengan todos un buen día
>
> Les expongo mi problema: tengo un objeto DataAdapter
> (especificamente un OledbDataAdapter) enlazado a una tabla en SQLServer.
> Al
> configurar el objeto, se crean bien las instrucciones INSERT, UPDATE y
> DELETE. Mi objeto Adapter luego llena un DataSet. Sobre el DatSet hago
> varias operaciones, como agregar filas, modificar, y eliminar,... Pero


el
> problema es que la eliminacion no la hace despues de que yo llamo al
> metodo
> Update de mi objeto Adapter, solo me realiza las inserciones y
> modificaciones en la tabla, pero no las eliminaciones
> Alguien sabe a que se debe esto!!??
> Les agradecería mucho su ayuda
>
> Gracias de Antemano:
> Francisco Leiva
>
>


Respuesta Responder a este mensaje
#3 Carlos Durán Urenda
22/03/2005 - 17:09 | Informe spam
Pues en realidad no manejo mucho SQL, pero lo que se me puede ocurrir es que
se trate de algun permiso que no te deje eliminar...

por otro lado podrias verificar que la instruccion que ejcuta la
eliminacion realmente esté arrojando filas para eliminar

Dim dt As DataTable = DS.Tables("TuTabla")
Dim DR() As DataRow = dt.Select(Nothing, Nothing, DataViewRowState.Deleted)
Dim t As String = "Se eliminaron " & DR.Length & " Registros"
MsgBox(t)

si te devuelve cero, el error no se encuentra en el metodo update, si no en
el procedimiento que realiza la eliminacion

Saludos
Carlos Durán


"Francisco Leiva" escribió en el mensaje
news:%
Saludos Carlos.
Las instrucciones las creo con el CommandBuilder. La propiedad
ContinueUpdateOnError esta en False, y capturo excepciones al momento de
ejecutar el metodo Update del Adaptador,..Probe poner las instrucciones
como
me recomendaste poniendo primero las eliminaciones, luego modificiaciones
y
por ultimo inserciones. Probe hacer solo una eliminación en mi dataset y
luego correr el metodo Update del Adapter y no me tira ninguna excepción
pero tampoco se refleja el cambio en la base de datos de manera que cuando
vuelvo a cargar los datas en mi datase siempre esta la fila que elimino,
aunque sea solo esa la operacion que realize. No se adonde puede estar el
Error :(...
Pero muchass gracias por tu ayuda, si conces algo mas te agradecería lo
compartieras :)

Gracias
Francisco Leiva

"Carlos Durán Urenda" escribió en el mensaje
news:
Hola Francisco

A ver si puedo ayudarte, no se si para llenar los comandos Insert, Update


y
Delete estas utilizando el CommandBuilder o los estas llenando a mano, si


lo
estas haciendo a mano, podria ser un error en el comando de elminiacion.

Por otra parte, al procesar el comando Update del Adaptador, las


operaciones
se realizan en un determinado orden, que no siempre puede ser el
conveniente, y si tienes configurada la poriedad del adaptador
ContinueUpdateOnerrors=True o bien estas atrapando las excepciones, es
posible que no alcances a percibir si esta ocurriendo un error en el


Update.

Creo... , que de forma predeterminada el update ejecuta primero la


insersion
de datos, luego la modificacion y por ultimo la eliminacion de los datos,
pero... pongamos un ejemplo

Digamos que tienes un registro con clave principal 100, lo eliminas y
despues insertas otro registro con clave 100 (tambien), al ejecutar el
update primero intentaria insertar las nuevas filas, lo que produciría un
error debido a que aun no se elimina el registro que contiene la misma
clave.

Posiblemente no sea tu caso, pero es posible cambiar el orden en el cual


se
ejecutan los comandos de insercion, actualizacion y eliminacion, para


evitar
este tipo de conflictos

Dim DT as Datatable= DS.Tables("TuTabla")

'Procesar primero las eliminaciones
Adaptador.Update (DT.Select(Nothing, Nothing, DataViewRowState.Deleted)
'Procesar luego las actualizaciones
Adaptador.Update (DT.Select(Nothing, Nothing,
DataViewRowState.ModifiedCurrent)
'Por ultimo las inserciones
Adaptador.Update (DT.Select(Nothing, Nothing, DataViewRowState.Added)


Espero esto te sirva

Saludos
Carlos Durán

"Francisco Leiva" escribió en el mensaje
news:u$
> Tengan todos un buen día
>
> Les expongo mi problema: tengo un objeto DataAdapter
> (especificamente un OledbDataAdapter) enlazado a una tabla en
> SQLServer.
> Al
> configurar el objeto, se crean bien las instrucciones INSERT, UPDATE y
> DELETE. Mi objeto Adapter luego llena un DataSet. Sobre el DatSet hago
> varias operaciones, como agregar filas, modificar, y eliminar,... Pero


el
> problema es que la eliminacion no la hace despues de que yo llamo al
> metodo
> Update de mi objeto Adapter, solo me realiza las inserciones y
> modificaciones en la tabla, pero no las eliminaciones
> Alguien sabe a que se debe esto!!??
> Les agradecería mucho su ayuda
>
> Gracias de Antemano:
> Francisco Leiva
>
>






Respuesta Responder a este mensaje
#4 Francisco Leiva
22/03/2005 - 22:29 | Informe spam
Gracias Carlos

En efecto, era el proceso de eliminacion el problema, el tamaño del arreglo
me retorno 0, por lo que modifique el proceso en el que elimino la fila del
DataSet

Gracias por tu ayuda :)

Saludos...

"Carlos Durán Urenda" escribió en el mensaje
news:#
Pues en realidad no manejo mucho SQL, pero lo que se me puede ocurrir es


que
se trate de algun permiso que no te deje eliminar...

por otro lado podrias verificar que la instruccion que ejcuta la
eliminacion realmente esté arrojando filas para eliminar

Dim dt As DataTable = DS.Tables("TuTabla")
Dim DR() As DataRow = dt.Select(Nothing, Nothing,


DataViewRowState.Deleted)
Dim t As String = "Se eliminaron " & DR.Length & " Registros"
MsgBox(t)

si te devuelve cero, el error no se encuentra en el metodo update, si no


en
el procedimiento que realiza la eliminacion

Saludos
Carlos Durán


"Francisco Leiva" escribió en el mensaje
news:%
> Saludos Carlos.
> Las instrucciones las creo con el CommandBuilder. La propiedad
> ContinueUpdateOnError esta en False, y capturo excepciones al momento de
> ejecutar el metodo Update del Adaptador,..Probe poner las instrucciones
> como
> me recomendaste poniendo primero las eliminaciones, luego


modificiaciones
> y
> por ultimo inserciones. Probe hacer solo una eliminación en mi dataset y
> luego correr el metodo Update del Adapter y no me tira ninguna excepción
> pero tampoco se refleja el cambio en la base de datos de manera que


cuando
> vuelvo a cargar los datas en mi datase siempre esta la fila que elimino,
> aunque sea solo esa la operacion que realize. No se adonde puede estar


el
> Error :(...
> Pero muchass gracias por tu ayuda, si conces algo mas te agradecería lo
> compartieras :)
>
> Gracias
> Francisco Leiva
>
> "Carlos Durán Urenda" escribió en el mensaje
> news:
>> Hola Francisco
>>
>> A ver si puedo ayudarte, no se si para llenar los comandos Insert,


Update
> y
>> Delete estas utilizando el CommandBuilder o los estas llenando a mano,


si
> lo
>> estas haciendo a mano, podria ser un error en el comando de


elminiacion.
>>
>> Por otra parte, al procesar el comando Update del Adaptador, las
> operaciones
>> se realizan en un determinado orden, que no siempre puede ser el
>> conveniente, y si tienes configurada la poriedad del adaptador
>> ContinueUpdateOnerrors=True o bien estas atrapando las excepciones, es
>> posible que no alcances a percibir si esta ocurriendo un error en el
> Update.
>>
>> Creo... , que de forma predeterminada el update ejecuta primero la
> insersion
>> de datos, luego la modificacion y por ultimo la eliminacion de los


datos,
>> pero... pongamos un ejemplo
>>
>> Digamos que tienes un registro con clave principal 100, lo eliminas y
>> despues insertas otro registro con clave 100 (tambien), al ejecutar el
>> update primero intentaria insertar las nuevas filas, lo que produciría


un
>> error debido a que aun no se elimina el registro que contiene la misma
>> clave.
>>
>> Posiblemente no sea tu caso, pero es posible cambiar el orden en el


cual
> se
>> ejecutan los comandos de insercion, actualizacion y eliminacion, para
> evitar
>> este tipo de conflictos
>>
>> Dim DT as Datatable= DS.Tables("TuTabla")
>>
>> 'Procesar primero las eliminaciones
>> Adaptador.Update (DT.Select(Nothing, Nothing, DataViewRowState.Deleted)
>> 'Procesar luego las actualizaciones
>> Adaptador.Update (DT.Select(Nothing, Nothing,
>> DataViewRowState.ModifiedCurrent)
>> 'Por ultimo las inserciones
>> Adaptador.Update (DT.Select(Nothing, Nothing, DataViewRowState.Added)
>>
>>
>> Espero esto te sirva
>>
>> Saludos
>> Carlos Durán
>>
>> "Francisco Leiva" escribió en el mensaje
>> news:u$
>> > Tengan todos un buen día
>> >
>> > Les expongo mi problema: tengo un objeto DataAdapter
>> > (especificamente un OledbDataAdapter) enlazado a una tabla en
>> > SQLServer.
>> > Al
>> > configurar el objeto, se crean bien las instrucciones INSERT, UPDATE


y
>> > DELETE. Mi objeto Adapter luego llena un DataSet. Sobre el DatSet


hago
>> > varias operaciones, como agregar filas, modificar, y eliminar,...


Pero
> el
>> > problema es que la eliminacion no la hace despues de que yo llamo al
>> > metodo
>> > Update de mi objeto Adapter, solo me realiza las inserciones y
>> > modificaciones en la tabla, pero no las eliminaciones
>> > Alguien sabe a que se debe esto!!??
>> > Les agradecería mucho su ayuda
>> >
>> > Gracias de Antemano:
>> > Francisco Leiva
>> >
>> >
>>
>>
>
>


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