Um Zugriff auf wen das betreffen kann, habe ich eine beträchtliche Menge an Zeit gesucht, einen Ausweg aus diesem Fehler arbeitenFehler: Gelöschte Zeileninformation nicht durch die Reihe
"Deleted row information cannot be accessed through the row"
Ich verstehe, dass, sobald eine Reihe wurde aus einer Datentabelle gelöscht, auf die nicht in einer typischen Weise zugegriffen werden kann, und deshalb erhalte ich diesen Fehler. Das große Problem ist, dass ich nicht sicher bin, was ich tun soll, um mein gewünschtes Ergebnis zu erhalten, was ich unten skizzieren werde.
Grundsätzlich, wenn eine Zeile in "dg1" gelöscht wird, übernimmt die darunter liegende Zeile (offensichtlich) die Stelle der gelöschten Zeile und erbt damit den gelöschten Zeilenindex. Der Zweck dieser Methode besteht darin, den Zeilenindex zu ersetzen und zurückzusetzen (indem er von dem entsprechenden Wert im Dataset übernommen wird), der den gelöschten Zeilenplatz und somit den Indexwert verwendet hat.
Im Moment benutze ich nur eine Bezeichnung (lblText), um eine Antwort vom Prozess zu bekommen, aber es stürzt ab, wenn die letzte verschachtelte if-Anweisung versucht, Werte zu vergleichen. Hier
ist der 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'
}
}
}
Dank im Voraus für die Hilfe, ich habe Suche wirklich, und wenn es einfach ist, eine einfache Google-Suche, um herauszufinden, durch dann lass mich wiederholbar auf mich zu hassen , weil ich es versucht habe.
- gc
Warum verwenden Sie 'Convert.ToString', wenn Sie' .ToString() 'bereits verwendet haben? Dies scheint überflüssig zu sein. –
@druciferre - Ich stimme zu, dass es überflüssig ist. Ich kopierte den Originalcode des OP und modifizierte ihn, um den ursprünglichen Wert von DataRow zu verwenden. – firedfly