Comprobar datos borrados en un dataset

elgordito
02 de Febrero del 2006
Hola soy nueva en el foro y queria agradecer la ayuda que se obtiene aqui.
El problema que tengo es el siguiente.
En una factura quiere tener la opción de modificar, permitiendo borrar lineas.
Cuando borro una linea lo hago en el dataset, y aqui se produce el problema. Al calcular el total de nuevo dice que estoy acediendo a una fila que no existe, sin embargo el número de líneas es el mismo antes que despues de borrar.
Supongo que haya alguna forma de saber si la linea en el dataset a sido borrado o no, pero no se como puede ser.
Gracias por vuestra ayuda

Darker4Ever
02 de Febrero del 2006
Antes de acceder al valor de la fila, pregunta si es nulo el valor. Y dependiendo de eso, ya accedes y lo guardas ó ignoras el registro.

jm
02 de Febrero del 2006
El dataset marca las filas que eliminas como borradas, pero no las elimina inmediatamente. El problema es que las filas marcadas como borradas no son accesibles, y por eso te da error al intentar leerlas.
Para comprovar si una fila esta eliminada debes usar la propiedad RowState de System.Data.DataRow, que es una enumeracion, si el valor es DataRowState.Deleted la fila esta eliminada.
El DataSet tiene una funcion AcceptChanges, si la llamas entonces las rows eliminadas desapareceran definitivamente del dataset. Con RejectChanges volveras al estado del dataset cuando se hizo el ultimo AcceptChanges.
Espero haber ayudado en algo, no dudes en preguntar si aun hay algo que no queda claro

elgordito
02 de Febrero del 2006
Muchas gracias por vuestra ayuda. El problema ya esta resuelto, utilice el datarowstate y ya no se producen errores.
Mil gracias

Erick
02 de Febrero del 2006
Yo utilice este Codigo... Aparentemente si las borrar pero cuando hago el Fill me aparecen nuevamente en el DataGrid

Me.DsP_AuxDataSet1.FormaPago.Rows(0).Delete()
Me.DsP_AuxDataSet1.AcceptChanges()

Me.FormaPagoTableAdapter.Fill