Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Borrar registros de un dataset en un ciclo for (http://www.forosdelweb.com/f29/borrar-registros-dataset-ciclo-388143/)

catu 24/04/2006 12:45

Borrar registros de un dataset en un ciclo for
 
hola a todos, tengo el siguiente problema:
Estoy recorriendo un dataset para borrar sus filas usando el siguiente codigo:

Código:

for A= ds.tables("mitabla").rows.count -1 to 0
Step - 1
Dv.delete(A)
next

El ciclo funciona OK pero al poner el siguiente codigo :

Código:

Dim newdataset as newdataset
IF ds.haschanges(datarowstate.deleted) then
newdataset = ds.getchanges(datarowstate.deleted)
 For A=0 to newdataset.tables("mitabla").rows.count - 1
Msgbox(newdataset.tables("mitabla").rows(0).item("nombre"))
next
End if

Cuando quiero mostrar el campo nombre me da el siguiente error:
System.null reference exeption
Referencia a objeto no establecida como instancia de un objeto

¿Como puedo solucionar este problema?
De ante mano muchas gracias.

Maxi.Net 24/04/2006 14:47

HOla no se si te sirva de algo, pero a mi me ha pasado que cuando tengo atributos de la tabla en blanco (null) me arroja ese mismo error.

Revisa si existe algun dato en blanco dentro de la tabla.

Saludos

catu 24/04/2006 15:25

Gracias, pero acabo de solucionar el error este, era que me habia equivocado al nombrar la tabla, ahora el error cambio, me dice que no puedo trabajar con datos eliminados... revise y los datos los recupero bien , creo que el error esta al querer mostrar los datos , de ahi hacia arriba todo ok.

Código:

Msgbox(newdataset.tables("mitabla").rows(0).item("nombre"))
¿Que estoy haciendo mal?

mcEmmanuel 28/04/2006 14:45

Un objeto datarow no es posible acceder a algunas propiedades si su estado es deleted

row.RowState=DataRowState.Deleted


Se me ocurre lo siguiente
Código:

Dim tbDeleted As DataTable = ds.Tables("NOMBRE_TABLA").GetChanges(DataRowState.Deleted)
'como GetChanges obtiene una copia de la tabla, en ds segiran los datos originales
'quitamos el estado de los rows eliminado para poder accesar a los valores de las columnas
tbDeleted.RejectChanges()
ForEach row As DataRow In tbDeleted.Rows
'Mostramos el campo que queramos
MsgBox(row("NOMBRE_CAMPO"))
Next




La zona horaria es GMT -6. Ahora son las 19:06.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.