Lies in den Artikel rein und unten bekommst Du ein unschlagbares Angebot!
Die Validierung bei der Eingabe von Daten ist eines der wichtigsten Themen bei der Erstellung benutzerfreundlicher Anwendungen. In diesem ersten Artikel zu diesem Thema wollen wir uns darauf beschränken, solche Eingabefehler abzufangen, welche durch die Restriktionen im Datenmodell und entsprechende Fehleingaben entstehen. Das sind beispielsweise Fehler, die auftreten, weil der Benutzer keinen Wert in ein Feld eingibt, das nicht leer sein darf, oder der Datentyp des Feldes nicht mit dem eingegebenen Wert korrespondiert.
Beispielanwendung
Wie bei den meisten Artikeln dieser Ausgabe wollen wir unser Know-how an der Beispielanwendung Bestellverwaltung ausprobieren. Diese hat in einigen Tabellen Restriktionen, gegen die wir über die Eingabe in den beiden vorgestellten Seiten Kundenuebersicht oder Artikeluebersicht verstoßen können. Das wären beispielsweise Folgende:
- Das Feld Bezeichnung in der Tabelle Artikel darf nicht Null sein, muss also einen Wert enthalten.
- Für die Fremdschlüsselfelder AnredeID der Tabelle Kunden oder KategorieID der Tabelle Artikel muss ein Wert angegeben werden.
- Andere Felder sind grundsätzlich aufgrund ihres Datentyps auf die Eingabe bestimmter Werte beschränkt – zum Beispiel können Sie keinen Text in ein Zahlen- oder Datumsfeld eingeben.
Ablauf ohne Validierung
Schauen wir uns an, was geschieht, wenn wir keine Vorsichtsmaßnahmen treffen und davon ausgehen, dass der Benutzer die korrekten Werte in die Felder eingibt und auch alle Pflichtfelder ausfüllt. Nehmen wir also an, dass der Benutzer einen neuen Artikel anlegt und vor dem Klick auf die Schaltfläche Speichern keine Bezeichnung eingibt und auch keine Kategorie auswählt (siehe Bild 1).
Bild 1: Speichern eines Datensatzes ohne Angabe der Bezeichnung
Dann liefert Visual Studio die Ausnahme aus Bild 2. Die hier angegebene Information, es sei eine Ausnahme des Typs System.Data.Entity.Validation.DbEntityValidationException liefert noch keine echte Hilfe beim Beheben des Problems.
Bild 2: Ausnahme beim Versuch, Daten ohne Füllen eines Feldes zu speichern, das keine Nullwerte akzeptiert
Also klicken Sie auf den Link Details anzeigen… und erhalten eine weitere Meldung, die diesmal den Hinweis Fehler bei der Überprüfung einer oder mehrerer Entitäten liefert. Wir erfahren noch, dass die Methode SaveChanges den Fehler ausgelöst hat, aber das war es dann auch.
Wir können an dieser Stelle nur die Meldung ausblenden und die Ausführung beenden. Selbst wenn Sie den Link Ausnahmedetail in die Zwischenablage kopieren anklicken und den Inhalt der Zwischenablage anschließend in einen Editor Ihrer Wahl einfügen, erhalten Sie hier keine nennenswerten weiteren Informationen.
Einzelnen Fehler provozieren