A qui cela peut concerner, j'ai cherché une quantité considérable de temps, de travailler un moyen de sortir de cette erreurErreur: informations de ligne supprimée ne peut pas être accessible par la ligne
"Deleted row information cannot be accessed through the row"
Je comprends qu'une fois de suite a été supprimé d'une base de données qu'il ne peut pas être accédé d'une manière typique et c'est pourquoi je reçois cette erreur. Le gros problème est que je ne suis pas sûr de ce qu'il faut faire pour obtenir le résultat souhaité, que je vais décrire ci-dessous.
Fondamentalement, lorsqu'une ligne dans "dg1" est supprimée, la ligne située en dessous remplace la ligne supprimée (évidemment) et hérite ainsi de l'index des lignes supprimées. Le but de cette méthode est de remplacer et de réinitialiser l'index des lignes (en le saisissant à partir de la valeur correspondante dans l'ensemble de données) qui a pris la place des lignes supprimées et en tant que telle la valeur de l'index.
En ce moment j'utilise juste un label (lblText) pour essayer d'obtenir une réponse du processus, mais il se bloque quand la dernière instruction if imbriquée essaie de comparer les valeurs.
Voici le code:
void dg1_Click(object sender, EventArgs e)
{
rowIndex = dg1.CurrentRow.Index; //gets the current rows
string value = Convert.ToString(dg1.Rows[rowIndex].Cells[0].Value);
if (ds.Tables[0].Rows[rowIndex].RowState.ToString() == "Deleted")
{
for (int i = 0; i < dg1.Rows.Count; i++)
{
if (Convert.ToString(ds.Tables[0].Rows[i][0].ToString()) == value)
//^**where the error is occurring**
{
lblTest.Text = "Aha!";
//when working, will place index of compared dataset value into rowState, which is displaying the current index of the row I am focussed on in 'dg1'
}
}
}
Merci à l'avance pour l'aide, j'ai vraiment fait la recherche, et s'il est facile de comprendre grâce à une simple recherche google me permettent alors de haine répétable sur moi , parce que j'ai essayé.
- gc
Pourquoi utilisez-vous 'Convert.ToString' quand vous avez déjà utilisé' .ToString() '? Cela semble redondant. –
@druciferre - Je suis d'accord que c'est redondant. J'ai copié le code original de l'OP et l'ai modifié pour utiliser la valeur originale du DataRow. – firedfly