Fragensteller
Frage zu bindingSource.Clear() - Rücksetzen oder Löschen der zugewiesenen Daten

Allgemeine Diskussion
-
Hallo
ich hätte eine Frage zu der bindingSource.Clear() - Methode.
Ich habe eine Löschfunktion in meiner WinForms-Applikation, mit der zuerst die Daten in der Datenbank (via Entity-Framework und POCO) gelöscht werden, und danach setze ich im UserControl meine bindingSource-Komponenten zurück - mit der Clear()-Methode.
Wenn ich aber nach der Clear-Methode folgende Abfrage ausführe:
Person currentPatient = bindingSourcePatient.DataSource as Person; if (currentPatient == null || currentPatient.PrimaryKey == Guid.Empty) return -1;
dann sind nach dieser Clear-Methode immer noch die Daten von vor dem Löschen enthalten.
D.h. für mich schaut es so aus, als ob die Clear()-Methode nichts bewirken würde.
Kann mir dazu bitte jemand einen Rat geben??
Vielen Dank schon mal & schönen Gruß,
Michael
Michael Erlinger
- Typ geändert Ivan DragovMicrosoft contingent staff, Moderator Mittwoch, 29. November 2017 06:42 Keine Rückmeldung
Alle Antworten
-
Hi Michael,
die BidingSource nutzt als Datenquelle ein Repository. Hast Du darin auch die Daten entfern?--
Viele Grüsse
Peter Fleischer (ehem. MVP)
Meine Homepage mit Tipps und Tricks -
Hallo
mein Delete-Vorgang würde so aussehen:
internal void DeletePerson() { Person currentPatient = bindingSourcePatient.DataSource as Person; if (currentPatient == null) return; using (PatFallRepository repoFall = new PatFallRepository()) ...... // einige Validierungen, ob Delete möglich ...... // Abfrage ob wirklich löschen ..... try { currentPatient.MarkAsDeleted(); using (PatientenRepository repo = new PatientenRepository()) repo.Save(currentPatient); ClearData(); } catch (Exception ex) { MessageLogging.ShowExceptionMessageBox(ex, "Error - DeletePatient()"); } }
und in der ClearData()-Methode setze ich diverse Kennzeichen, Controls usw. zurück; bzw. führe die BindingSource.Clear()-Methoden aus.
Schönen Gruß,
Michael
Michael Erlinger
-
Hi Michael,
so wie Du das geschrieben hast, sollte die BindingSource.Clear()-Methode die Elemente der Auflistung, aus der die BindingSource ihre Daten bezieht, entfernt werden.Um Dir weiter zu helfen, solltest Du eine kleine Demo bereitstellen, die dieses Verhalten reproduziert.
--
Viele Grüsse
Peter Fleischer (ehem. MVP)
Meine Homepage mit Tipps und Tricks- Bearbeitet Peter Fleischer Mittwoch, 22. November 2017 15:52