Hallo Leute,
ich bastel grad an einem Programm mit DataSet und DataGridView rum.
Und zwar geht es darum, dass ich programmgesteuert Rows in eine DataTable einfüge und diese Table in meinem DataGridView angezeigt wird. Nun soll der User eine Zeile der DGV anwählen können und per [del] die Zeile löschen können.
Danach soll die Numerierung der Zeilen neu organisiert werden. Das klappt beim 1. Mal auch soweit, aber wenn die 2. Zeile gelöscht wird, fliegt er beim Zugriff auf diese Zeile mit System.Data.DeletedRowInaccessibleException heraus. Zur Neunumerierung meiner Rows verwende ich folgenden Code (da ist noch ein wenig dies und das mit drin):
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| private void dataGridView1_UserDeletedRow(object sender, DataGridViewRowEventArgs e) { Int32 i = 1; //dsPositionen.Tables["dtPositionen"].Rows.Remove(e.Row); foreach (DataRow ThisRow in dsPositionen.Tables["dtPositionen"].Rows) { ThisRow[0] = i; //MessageBox.Show(ThisRow.ToString()); //MessageBox.Show(ThisRow[0].ToString()); ThisRow.AcceptChanges(); i = i + 1; } } |
DeletedRowInaccessibleException-Klasse:
Stellt die Ausnahme dar, die bei dem Versuch ausgelöst wird, eine Aktion für eine gelöschte DataRow auszuführen.
Ich mein es ist klar, dass man nicht auf gelöschte Zeilen zugreifen kann, aber warum greift er überhaupt auf gelöschte zu. Meiner meinung nach sollte nach dem Löschen der Zeile in dem DGV auch die Zeile aus der DataTable gelöscht werden...
Hoffe mir kann jemand einen Hinweis geben.
Liebe Grüße
- Basti