Question pas facile : System.Data. DeletedRowInaccessibleException

Signaler
Messages postés
5
Date d'inscription
samedi 2 juillet 2005
Statut
Membre
Dernière intervention
10 mars 2006
-
Messages postés
100
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
16 juin 2006
-
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

Messages postés
100
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
16 juin 2006
1
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 )