Gewusst wie: Validieren von Daten während Spaltenänderungen
Das Validieren von Daten bezeichnet das Überprüfen der Werte, die in die Daten der Anwendung eingegeben werden. Durch das Überprüfen dieser Werte vor dem Senden von Aktualisierungen am zugrunde liegenden Datenspeicher kann die potenzielle Anzahl von Roundtrips zwischen einer Anwendung und dem Datenspeicher reduziert werden.
Hinweis
Der Dataset-Designer erstellt eine partielle Klasse, in der einem Dataset Validierungslogik hinzugefügt werden kann.Das vom Designer generierte Dataset löscht bzw. ändert keinen Code in der partiellen Klasse.Weitere Informationen finden Sie unter Gewusst wie: Erweitern der Funktionen eines Datasets.
Sie können Daten validieren, wenn der Wert in einer Datenspalte geändert wird, indem Sie auf das ColumnChanging-Ereignis reagieren. Wenn dieses Ereignis ausgelöst wird, übergibt es ein Ereignisargument (ProposedValue), das den Vorschlagswert für die aktuelle Spalte enthält. Auf Grundlage des Inhalts von e.ProposedValue können Sie:
Den vorgeschlagenen Wert annehmen, indem Sie nichts tun.
Den vorgeschlagenen Wert ablehnen, indem Sie innerhalb des Ereignishandlers für Spaltenänderungen den Spaltenfehler festlegen (SetColumnError).
Optional können Sie ein ErrorProvider-Steuerelement verwenden, um dem Benutzer eine Fehlermeldung anzuzeigen. Weitere Informationen finden Sie unter ErrorProvider-Komponente (Windows Forms).
Während des RowChanging-Ereignisses kann ebenfalls eine Validierung ausgeführt werden. Weitere Informationen finden Sie unter Gewusst wie: Validieren von Daten während Zeilenänderungen.
So validieren Sie Daten bei Änderungen der Spaltenwerte
Öffnen Sie das Dataset im DataSet-Designer. Weitere Informationen finden Sie unter Gewusst wie: Öffnen eines Datasets im DataSet-Designer.
Doppelklicken Sie auf die zu validierende Spalte. Durch diese Aktion wird der ColumnChanging-Ereignishandler für DataTable erstellt.
Hinweis
Der Dataset-Designer erstellt den Ereignishandler für das C#-Ereignis nicht automatisch.Der zum Behandeln des Ereignisses erforderliche Code wird unten aufgeführt.
Fügen Sie Code hinzu, mit dem überprüft wird, ob die Daten in e.ProposedValue den Anforderungen der Anwendung entsprechen. Wenn der vorgeschlagene Wert unzulässig ist, legen Sie für die Spalte fest, dass sie einen Fehler enthält.
Im folgenden Codebeispiel wird ein Spaltenfehler festgelegt, wenn der Wert für die Quantity-Spalte 0 oder weniger beträgt. Der Ereignishandler für Spaltenänderungen sollte dem folgenden Code entsprechen oder ähnlich sein:
'Visual Basic Private Sub Order_DetailsDataTable_ColumnChanging(ByVal sender As System.Object, ByVal e As System.Data.DataColumnChangeEventArgs) _ Handles Me.ColumnChanging If (e.Column.ColumnName = Me.QuantityColumn.ColumnName) Then If CType(e.ProposedValue, Short) <= 0 Then e.Row.SetColumnError(e.Column, "Quantity must be greater than 0") Else e.Row.SetColumnError(e.Column, "") End If End If End Sub // C# // Add this code to the DataTable // partial class. public override void EndInit() { base.EndInit(); ColumnChanging += SampleColumnChangingEvent; } public void SampleColumnChangingEvent(object sender, System.Data.DataColumnChangeEventArgs e) { if (e.Column.ColumnName == QuantityColumn.ColumnName) { if ((short)e.ProposedValue <= 0) { e.Row.SetColumnError("Quantity", "Quantity must be greater than 0"); } else { e.Row.SetColumnError("Quantity", ""); } } }
Siehe auch
Aufgaben
Exemplarische Vorgehensweise: Anzeigen von Daten in einem Windows Form
Gewusst wie: Überprüfen von Daten im DataGridView-Steuerelement in Windows Forms
Gewusst wie: Herstellen einer Verbindung zu Daten in einer Datenbank