Hallo Ich bin Dabei ein Formular zu bauen in dem eine DataGridview (Tabelle) aus einer Datenbank geladen wird. In dieser habe ich dann Selectionboxes eingefügt. Die Ausgewählten Zelen sollen dann in eine andere DatagridView rüber verschoben werden werden. Das kopieren klappt ganz gut. Jedoch will ich die kopierten Zeilen in dem Quell DatagridView löschen. Das klapp leider nicht ganz. Alle Zeilen werden zwar kopiert, aber nur die letzte Zeile der ausgewählten Zeilen wird gelöscht. Im Anhang habe ich zwei Screenshots die mein Problem mal visualsieren sollen.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| public DataTable loadMatImpTable(String query) { myConn.Open(); SQLiteCommand cmd = new SQLiteCommand(query, myConn); SQLiteDataAdapter sda = new SQLiteDataAdapter(); sda.SelectCommand = cmd; DataTable dt= new DataTable(); sda.Fill(dt); return dt; } |
Das DataGridview befülle ich dann wie folgt:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| DataTable dt = lt.loadMatImpTable(queryMat);
this.matExpDataGridVW.Rows.Clear(); foreach (DataRow item in dt.Rows) { int n = matExpDataGridVW.Rows.Add(); matExpDataGridVW.Rows[n].Cells[0].Value = false; matExpDataGridVW.Rows[n].Cells[1].Value = item["MaterialID"].ToString(); matExpDataGridVW.Rows[n].Cells[2].Value = item["Name"].ToString(); matExpDataGridVW.Rows[n].Cells[3].Value = item["Preis"]; matExpDataGridVW.Rows[n].Cells[4].Value = item["Anzahl"].ToString(); matExpDataGridVW.Rows[n].Cells[5].Value = item["Datum"].ToString(); } |
Dem Button habe ich folgende Aktion zugewiesen
1. Befüllen des leeren DataGridView mit den Ausgewählen aus dem Quell DataGridView
2. Versuch des Löschen aller ausgewählten Elemente aus Quell-DataGridView
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| private void mvImpSelectionBT_Click(object sender, EventArgs e) { foreach (DataGridViewRow item in matExpDataGridVW.Rows) { if ((bool)item.Cells[0].Value == true) { int n = matImpDataGridVW.Rows.Add(); matImpDataGridVW.Rows[n].Cells[0].Value = false; matImpDataGridVW.Rows[n].Cells[1].Value = item.Cells[1].Value.ToString(); matImpDataGridVW.Rows[n].Cells[2].Value = item.Cells[2].Value.ToString(); matImpDataGridVW.Rows[n].Cells[3].Value = item.Cells[3].Value.ToString(); matImpDataGridVW.Rows[n].Cells[4].Value = item.Cells[4].Value.ToString(); matImpDataGridVW.Rows[n].Cells[5].Value = item.Cells[5].Value.ToString(); } }
foreach (DataGridViewRow item in matExpDataGridVW.SelectedRows) { matExpDataGridVW.Rows.Remove(item); } } |
Was muss ich anders machen, damit alle Zeilen gelöscht werden?
VG niesel
Moderiert von
Th69: Code- durch C#-Tags ersetzt