J
Jose Fernandez
Hola
Tengo un nuevo problema.
Tengo un datagrid (dg) que lo "filleo" con un Datatable(Tables[1]) de un
Dataset (Ds).
dg.DataSource=Ds.Tables[1];
El datagrid tiene activado los eventos Delete, Update, Edit.
Eso va bien.
Ahora. esta es la situacion. Ese dataset tiene 3 records. Cuando borro en el
dataset(mediante el metodo dg_DeleteCommand(object Source, EventArgs e))
cualquier record que no sea el ultimo, luego recibo el siguiente error si
trato de Editar o Insertar o cualquier accion con un nuevo registro en el
datagrid. El error que recido es el siguiente
System.Data.DeletedRowInaccessibleException: Deleted row information cannot
be accessed.
El error me da pienso porque en el Dataset se mantiene ese row ocupado
aunque marcado como Deleted en el RowState property y cuando trato de tomar
el valor del supuesto Item, encuentra que no es el index en el dataset que
devuelve el datagrid.
Algo curioso es que en el evento Delete_Command yo tenia previamente este
codigo y no me daba problemas
DataRow oRow= oDs.Tables[1].Rows[e.Item.ItemIndex];
oDs.Tables[1].Rows.Remove(oRow);
ActualizarGrilla(SubCategorias,1);
PERO con este metodo, el dataset no reconoce cambios (ds.HasChanges()
premanece FALSE) y yo necesito que si lo reconozca. Solo con el metodo
siguiente me cambia la propiedad HasChange a TRUE
DataRow oRow= oDs.Tables[1].Rows[e.Item.ItemIndex];
oRow.Delete();
ActualizarGrilla(SubCategorias,1);
Encontre que hay dos propiedades en e.item. Una es ItemIndex y la otra es
DataSetIndex. Tenia esperanzas que DataSetIndex me devolviera el indice en
el dataset justo como lo habia traido de la base de datos.. pero no.
ALGUIEN CONOCE las diferencias entre uno y otro? Yo no se las veo, pero las
debe tener.
Alguien sabe como se puede resolver este problema?
Saludos
Tengo un nuevo problema.
Tengo un datagrid (dg) que lo "filleo" con un Datatable(Tables[1]) de un
Dataset (Ds).
dg.DataSource=Ds.Tables[1];
El datagrid tiene activado los eventos Delete, Update, Edit.
Eso va bien.
Ahora. esta es la situacion. Ese dataset tiene 3 records. Cuando borro en el
dataset(mediante el metodo dg_DeleteCommand(object Source, EventArgs e))
cualquier record que no sea el ultimo, luego recibo el siguiente error si
trato de Editar o Insertar o cualquier accion con un nuevo registro en el
datagrid. El error que recido es el siguiente
System.Data.DeletedRowInaccessibleException: Deleted row information cannot
be accessed.
El error me da pienso porque en el Dataset se mantiene ese row ocupado
aunque marcado como Deleted en el RowState property y cuando trato de tomar
el valor del supuesto Item, encuentra que no es el index en el dataset que
devuelve el datagrid.
Algo curioso es que en el evento Delete_Command yo tenia previamente este
codigo y no me daba problemas
DataRow oRow= oDs.Tables[1].Rows[e.Item.ItemIndex];
oDs.Tables[1].Rows.Remove(oRow);
ActualizarGrilla(SubCategorias,1);
PERO con este metodo, el dataset no reconoce cambios (ds.HasChanges()
premanece FALSE) y yo necesito que si lo reconozca. Solo con el metodo
siguiente me cambia la propiedad HasChange a TRUE
DataRow oRow= oDs.Tables[1].Rows[e.Item.ItemIndex];
oRow.Delete();
ActualizarGrilla(SubCategorias,1);
Encontre que hay dos propiedades en e.item. Una es ItemIndex y la otra es
DataSetIndex. Tenia esperanzas que DataSetIndex me devolviera el indice en
el dataset justo como lo habia traido de la base de datos.. pero no.
ALGUIEN CONOCE las diferencias entre uno y otro? Yo no se las veo, pero las
debe tener.
Alguien sabe como se puede resolver este problema?
Saludos