Mostrando entradas con la etiqueta registro eliminado. Mostrar todas las entradas
Mostrando entradas con la etiqueta registro eliminado. Mostrar todas las entradas

martes, 23 de marzo de 2010

No se puede obtener acceso a la información eliminada de una fila



Estimados lectores, ha sido una experiencia agradable el hacer este blog y tener algunos lectores que comparten el gusto por la programación; actualmente estoy empezando otro proyecto, muy personal,  con tecnología web  que espero compartir con toda la comunidad de programadores y necesito recursos porque es algo muy personal y mi situación financiera no es muy buena.

 Si alguien desearía apoyarme  tengo una tarjeta Oxxo Saldazo con el número:  4766-8408-7508-1593, cualquier apoyo lo pueden hacer en cualquier tienda Oxxo o en Banamex, les agradezco y que sus proyectos lleguen a buen fin.

Es frecuente eliminar un registro, ya sea de un datagridview, dataset o datatable y después querer procesar los registros para realizar cierta operación, como puede ser:
Colocar algún estatus de un campo.
Pongamos el ejemplo de que hemos eliminado alguna calificación de un alumno y damos de alta otra calificación dentro de un datagridview. Después queremos colocar un estatus de que el alumno ha sido actualizado. Si recorremos toda la tabla subyacente al datagridview haríamos lo siguiente
For Each dr As DataRow In dtabalumno.Rows
dr("status") =”PROCESADO”
Next
‘Como hemos borrado un registro al hacer esta rutina nos presenta el error siguiente
“No se puede obtener acceso a la información eliminada de una fila”, esto es porque cuando borramos un registro únicamente se marca como borrado, no se ha eliminado, por lo tanto lo procesa. La eliminación fisica se hará hasta que confirmes y actualices los datos. Pero como el registro tiene un valor para saber si ha sido marcado como borrado o no, le podemos poner la siguiente condición.
If dr.RowState = DataRowState.Deleted Then
De esa manera el proceso quedaria de la siguiente manera:
For Each dr As DataRow In dtabalumno.Rows
If dr.RowState = DataRowState.Deleted Then
‘no procesa el registro eliminado
else
dr("status") =”PROCESADO”
endif
Next