Wie lösche ich Tabellen-Zeilen aus dem GridView und der Datenbank?
Hallo, ich habe ein Programm geschrieben, mit dem man Informationen in Textfelder eingeben kann und beim klick auf den Speichern-Button werden diese im Grid sowie der Datenbank angezeigt. Ich möchte jetzt aber auch einen Löschen-Button hinzufügen. Wie lösche ich die ausgewählten Zeilen auch aus der Datenbank?
Code um abzuspeichern bzw. Informationen/Zeilen hinzufügen:
using (DataBaseEntities db = new DataBaseEntities())
{
db.Kontakte.Add(model);
db.SaveChanges();
dataGridView1.DataSource = db.Kontakte.ToList();
}
Ich hätte gedacht irgendwie so Informationen/Zeilen zu löschen:
using (DataBaseEntities db = new DataBaseEntities())
{
db.Kontakte.Remove();
}
Nur was gehört in die Klammern bein Remove?
Ich bräuchte eine Variable die den selected Index auswählt und die Variable kommt dann in das Remove?
Danke.:)
1 Antwort
Schau mal hier rein:
Du ermittelst den Index / die Indezes für selektierte Zeilen und speicherst diese(n) zwischen. Am besten wäre es, wenn du in dem Grid eine unsichtbare Spalte mit der ID aus der Datenbank hättest. Dann kannst du über den Index die ID herausfinden und dann den Delete zusammenstellen.
Ein Beispiel:
int id = dataGridView1.CurrentCell.RowIndex;
// hier musst du natürlich den richtigen Typ verwenden; // ich bin einfach mal von Uniqueidentifier ausgegangen
string idToDelete = dataGridView1.Rows[i].Id;
// sieht vielleicht etwas kryptisch aus, mit dem Lambda
// Ausdruck, ist aber kürzer, als anderer Code
Kontakte delete = Kontakte.FirstOrDefault(i => i.Id == idToDelete);
context.Remove(delete);