Question pas facile : System.Data. DeletedRowInaccessibleException

zdude69 Messages postés 5 Date d'inscription samedi 2 juillet 2005 Statut Membre Dernière intervention 10 mars 2006 - 10 mars 2006 à 00:03
ProphetKy Messages postés 100 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 16 juin 2006 - 10 mars 2006 à 09:50
Bonjour.

J'essaie une méthode qui mélange une table d'un dataSet.

Le code suit plus bas.
Sur des grosses tables j'ai, de manière aléatoire, l'exception
DeletedRowInaccessibleException sur la ligne dtRows.Add(dt.Rows[index].ItemArray ); J'ai aussi l'indication suivante :
"Informations supplémentaires : Impossible d'accéder via la ligne aux informations de ligne supprimées."

Quelqu'un peut-il me dire quoi faire ? Merci.

shuffleTable(dsMonDataSet.Tables["MaTable"]);

private
void shuffleTable(DataTable dt)


{



int count = dt.Rows.Count;



int index;


Random random =
new Random();



for(
int i=0;i<(
int)count/2;i++)


{


index = random.Next(count);


dt.Rows.Add(dt.Rows[index].ItemArray );


dt.Rows.RemoveAt(index);


}


}

1 réponse

ProphetKy Messages postés 100 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 16 juin 2006 2
10 mars 2006 à 09:50
En fait tu essayes d'acceder à à une row qui est marqué comme delete dans ton DataSet.
Tu devrais tester le rowState avant de d'essayer d'ajouter ta row afin de vérifier que ce n'est pas une row qui est marqué supprimé.

Fais attention aussi à Remove ( suppression définitive dans le DS, impossible de revenir en arriere ) et Delete ( possiblité de revenir en arriere )
1
Rejoignez-nous