Datagrid Zelle nach inhalt löschen
-
Hi Leute
Folgendes Problem:Ich lese eine Datenbank aus und lasse sie in einem Datagrid darstellen.Dann lese ich alle zellen einer bestimmten Spalte nach einem bestimmten wert aus.Er soll jetzt alle ZEILEN die diesen wert beinhalten löschen.
Bei verursacht das aber einen Index konflikt.
Hier der Code:
DataGridViewRow ^row; for(int n = dataGridView1->RowCount; n >= 0; n--) { row = dataGridView1->Rows[n]; if (row->Cells[0]->Value->ToString() == "0") { dataGridView1->Rows->Remove(row); } }
-
Hi Theplake
Ich weiß ja nicht wie du die Datenbank gemacht hast und ich habe auch nicht zu viel Ahnung aber ich hätte zwei Varianten.
1. this->testdbBindingSource->RemoveCurrent();
this->testdbBindingSource->EndEdit();
this->testdbTableAdapter->Update(this->testdbDataSet->testTabelle);2. DataGridViewRow ^row;
for(int n = dataGridView1->RowCount; n >= 0; n--)
{
row = dataGridView1->Rows[n];
if (row->Cells[0]->Value->ToString() == "0")
{dataGridView1->Rows->RemoveCurrent();
}
}Aber wie gesagt ohnegewähr
MFG
Sebastian
-
Danke erstmal aber ich möchte die eintrage in der Datenbank nicht löschen.Nur im Datagridview.
zu der zweiten variante, RemoveCurrent gibt es nicht unter rows.
-
Ja sorry ist mir gar nicht auf dem ersten blick auf gefallen du hast ja über datagridview vereinbart und nicht über bindingSource.
MFG Sebastian
-
Die methode funktioniert ja mit remove(row) allerdings löscht er immer nur paar zeilen mit diesem "0" wert.Das hat was damit zutun das sich der Index ändert.Hat einer ne Lösung wie ich trotzdem alle zeilen mit dem Wert "0" löschen kann?
-
Was wäre wenn du den Eintrag löscht. das Datagridview updatest und wieder von vorne nach deinem Eintrag suchst. Dann kannst du nie über den Index laufen.
-
Kannst du mir nen kleines Beispiel geben?
-
Du kannst auch erst über das DGV laufen, die Rows in eine Liste packen, die gelöscht werden sollen, und dann die Liste als "Quelle" für die Zeilen die Du entfernen willst verwenden.
-
edit:
war Blödsinn
-
kann mir denn einer nen beispiel geben?
-
Wie kann ich das denn in eine Liste speichern?
In einem array?
-
Na, schau Dir mal die Klasse List<T> in der MSDN an.
-
Super dankeschön!