Exemplarische Vorgehensweise: Hinzufügen von Validierungen zu einer N-Tier-Datenanwendung
Aktualisiert: November 2007
Mit dem Vorgang der Validierung von Daten wird bestätigt, dass Werte, die in Datenobjekte (z. B. Datentabellen oder LINQ to SQL-Klassen) eingegeben wurden, den Einschränkungen eines Objektschemas entsprechen. Außerdem wird durch Validierungen die Einhaltung von Regeln sichergestellt, die für die Anwendung eingerichtet wurden. Es dient der Fehlervermeidung, Daten vor dem Senden von Aktualisierungen an zugrunde liegende Datenbanken auf Gültigkeit zu überprüfen. Dadurch wird auch die potenzielle Anzahl von Roundtrips zwischen einer Anwendung und der Datenbank verringert.
Diese exemplarische Vorgehensweise enthält schrittweise Anweisungen, wie Sie einer N-Tier-Anwendung (der im Thema Exemplarische Vorgehensweise: Erstellen einer N-Tier-Datenanwendung erstellten Projektmappe) Validierungen hinzufügen.
In dieser exemplarischen Vorgehensweise wird gezeigt, wie Sie die folgenden Aufgaben ausführen:
Automatisches Generieren von partiellen Klassen mit dem DataSet-Designer
Hinzufügen von Code zum Durchführen von Validierungen, wenn sich der Wert einer einzelnen Spalte ändert
Vorbereitungsmaßnahmen
Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie Folgendes:
Die unter Exemplarische Vorgehensweise: Erstellen einer N-Tier-Datenanwendung erstellte Projektmappe und die zugehörigen Projekte.
Zugriff auf die Beispieldatenbank Northwind. Weitere Informationen finden Sie unter Gewusst wie: Installieren von Beispieldatenbanken.
Hinweis: |
---|
Ihr Computer zeigt möglicherweise für einige der Elemente der Visual Studio-Benutzeroberfläche in der folgenden Anleitung andere Namen oder Standorte an. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Visual Studio-Einstellungen. |
Öffnen der NTierWalkthrough-Projektmappe
So öffnen Sie die NTierWalkthrough-Projektmappe
Zeigen Sie im Menü Datei auf Öffnen, klicken Sie auf Projekt/Projektmappe, und navigieren Sie dann zum Speicherort der Datei NTierWalkthrough.sln.
Hinweis: Die Datei NTierWalkthrough.sln wird im Thema Exemplarische Vorgehensweise: Erstellen einer N-Tier-Datenanwendung erstellt und ist zum Durchführen dieser exemplarischen Vorgehensweise erforderlich. Befolgen Sie die Anweisungen im Thema Exemplarische Vorgehensweise: Erstellen einer N-Tier-Datenanwendung, und speichern Sie abschließend alle Projekte, wenn Sie dies nicht bereits getan haben.
Hinzufügen von Validierungen zum Überprüfen von Daten bei einer Änderung in einer einzelnen Spalte
In diesem Verfahren fügen Sie eine Validierung hinzu, durch die überprüft wird, ob die Spalte OrderDate in einer neuen Bestellung auf das aktuelle oder ein früheres Datum festgelegt ist. Eine Anforderung dieser Anwendung ist, dass die Spalte OrderDate keine zukünftigen Datumsangaben enthalten kann, d. h. Bestellungen mit einem zukünftigen Datum sind nicht zulässig.
So fügen Sie eine Validierung zum Überprüfen des in der Spalte OrderDate eingegebenen Werts hinzu
Öffnen Sie das DataSet im DataSet-Designer, indem Sie im Projektmappen-Explorer im DataAccessTier-Projekt auf die Datei NorthwindDataSet.xsd doppelklicken.
Doppelklicken Sie im Designer in der Tabelle Orders auf die Spalte OrderDate. Durch diese Aktion wird der ColumnChanging-Ereignishandler erstellt.
Hinweis: Der Ereignishandler für das C#-Ereignis wird vom DataSet-Designer nicht automatisch erstellt. Den Code, der in C# zum Verarbeiten des Ereignisses erforderlich ist, finden Sie weiter unten in diesem Verfahren. SampleColumnChangingEvent wird erstellt, und anschließend wird das ColumnChanging-Ereignis in der EndInit-Methode abonniert.
Fügen Sie Code hinzu, der überprüft, ob e.ProposedValue für die Spalte OrderDate das aktuelle oder ein früheres Datum enthält. Legen Sie fest, dass die Spalte einen Fehler enthält, wenn der vorgeschlagene Wert ungültig ist.
Im folgenden Codebeispiel wird überprüft, ob die Spalte OrderDate das aktuelle oder ein früheres Datum enthält. Wenn der OrderDate-Wert ein zukünftiges Datum ist, wird für die Spalte OrderDate ein Fehler festgelegt. Wenn OrderDate das heutige oder ein früheres Datum enthält, wird der Fehler in der Else-Klausel gelöscht.
Fügen Sie den Visual Basic-Code im ColumnChanging-Ereignishandler ein. Fügen Sie den C#-Code in die Deklaration der partiellen OrdersDataTable-Klasse ein.
If (e.Column.ColumnName = Me.OrderDateColumn.ColumnName) Then If CType(e.ProposedValue, DateTime) > Today Then e.Row.SetColumnError(e.Column, "OrderDate cannot be in the future") Else e.Row.SetColumnError(e.Column, "") End If End If
// Replace the NorthwindDataSet partial class with the following: public partial class NorthwindDataSet { partial class OrdersDataTable { public override void EndInit() { base.EndInit(); // Configure the ColumnChanging event // to call the SampleColumnChangingEvent method. ColumnChanging += SampleColumnChangingEvent; } public void SampleColumnChangingEvent(object sender, System.Data.DataColumnChangeEventArgs e) { if (e.Column.ColumnName == OrderDateColumn.ColumnName) { if ((System.DateTime)e.ProposedValue > System.DateTime.Today) { e.Row.SetColumnError("OrderDate", " OrderDate cannot be in the future"); } else { e.Row.SetColumnError("OrderDate", ""); } } } } }
Testen der Anwendung
Ändern Sie den Wert der Spalte OrderDate in ein ungültiges Datum, um die Anwendung zu testen.
So testen Sie die Anwendung
Drücken Sie F5.
Im Formular werden die Daten der Tabellen Customers und Orders angezeigt.
Ändern Sie im DataGridView mit den Bestellungen den Wert in der Spalte OrderDate (eines beliebigen Datensatzes) in das morgige Datum.
Navigieren Sie aus der Zeile, um die Änderung zu übernehmen.
Die Validierung schlägt fehl, und in der OrderDate-Zelle, die den ungültigen Wert enthält, wird ein Fehlersymbol angezeigt.
Halten Sie den Mauszeiger auf das Fehlersymbol, um den Validierungsfehler anzuzeigen.
Schließen Sie das Formular.
Nächste Schritte
Nachdem Sie einer N-Tier-Anwendung eine Validierung hinzugefügt haben, sollten Sie, je nach den Anforderungen der Anwendung, möglicherweise die folgenden Schritte ausführen. Beispielsweise können Sie an dieser Anwendung die folgende Verbesserung vornehmen:
- Fügen Sie Validierungen hinzu, die Änderungen überprüfen, wenn ein vollständiger Datensatz geändert wird. Weitere Informationen finden Sie unter Gewusst wie: Hinzufügen von Validierungen zu einem N-Tier-DataSet.