Gewusst wie: Validieren von Daten während Zeilenänderungen

Aktualisiert: November 2007

Das Validieren von Daten bezeichnet das Überprüfen der Werte, die in die Anwendungsdaten eingegeben werden. Diese Werte sollten vor dem Senden von Aktualisierungen an den zugrunde liegenden Datenspeicher überprüft werden. Dadurch wird die potenzielle Anzahl von Roundtrips zwischen einer Anwendung und dem Datenspeicher reduziert.

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.

Sie können Daten validieren, wenn die Werte in einer Datenzeile geändert werden, indem Sie auf das RowChanging-Ereignis reagieren. Wenn dieses Ereignis ausgelöst wird, übergibt es ein Ereignisargument (e.Row), das die Vorschlagswerte für die einzelnen Spalten der aktuellen Zeile enthält. Auf der Grundlage des Inhalts der einzelnen Spalten von e.Row können Sie:

  • Den vorgeschlagenen Wert annehmen, indem Sie nichts tun.

  • Den vorgeschlagenen Wert ablehnen, indem Sie innerhalb des Ereignishandlers für Zeilenä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).

Sie können mithilfe des ColumnChanging-Ereignisses eine Validierung auch während einzelner Spaltenänderungen ausführen. Weitere Informationen finden Sie unter Gewusst wie: Validieren von Daten während Spaltenänderungen.

Validieren von Daten im RowChanging-Ereignis

Sie können Code schreiben, um sicherzustellen, dass alle zu validierenden Spalten Daten enthalten, die 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. In den folgenden Beispielen wird ein Spaltenfehler festgelegt, wenn für die Quantity-Spalte ein Wert von 0 oder weniger gilt. Die Ereignishandler für Zeilenänderungen sollten den folgenden Beispielen entsprechen.

So validieren Sie Daten bei Zeilenänderungen (Visual Basic)

  1. Öffnen Sie das Dataset im Dataset-Designer. Weitere Informationen finden Sie unter Gewusst wie: Öffnen eines Datasets im DataSet-Designer.

  2. Doppelklicken Sie auf die Titelleiste der zu validierenden Tabelle. Durch diese Aktion wird der RowChanging-Ereignishandler der DataTable in der Datei für die partielle Klasse des Datasets automatisch erstellt.

    Tipp:

    Doppelklicken Sie links neben den Tabellennamen, um den Ereignishandler für Zeilenänderungen zu erstellen. Wenn Sie auf den Tabellennamen doppelklicken, können Sie diesen bearbeiten.

    Private Sub Order_DetailsDataTable_Order_DetailsRowChanging(ByVal sender As System.Object, _
        ByVal e As Order_DetailsRowChangeEvent) Handles Me.Order_DetailsRowChanging
    
        If CType(e.Row.Quantity, Short) <= 0 Then
            e.Row.SetColumnError("Quantity", "Quantity must be greater than 0")
        Else
            e.Row.SetColumnError("Quantity", "")
        End If
    End Sub
    

So validieren Sie Daten bei Zeilenänderungen (C#)

  1. Öffnen Sie das Dataset im Dataset-Designer. Weitere Informationen finden Sie unter Gewusst wie: Öffnen eines Datasets im DataSet-Designer.

  2. Doppelklicken Sie auf die Titelleiste der zu validierenden Tabelle. Durch diese Aktion wird eine Datei für die partielle Klasse der DataTable erstellt.

    Hinweis:

    Der Dataset-Designer erstellt nicht automatisch einen Ereignishandler für das RowChanging-Ereignis. Sie müssen eine Methode erstellen, mit der Sie das RowChanging-Ereignis behandeln und Code ausführen können, um das Ereignis in der Initialisierungsmethode der Tabelle zu verknüpfen.

  3. Kopieren Sie den folgenden Code in die partielle Klasse:

        public override void EndInit()
        {
            base.EndInit();
            Order_DetailsRowChanging += TestRowChangeEvent;
        }
    
        public void TestRowChangeEvent(object sender, Order_DetailsRowChangeEvent e)
        {
            if ((short)e.Row.Quantity <= 0)
            {
                e.Row.SetColumnError("Quantity", "Quantity must be greater than 0");
            }
            else
            {
                e.Row.SetColumnError("Quantity", "");
            }
        }
    

Siehe auch

Aufgaben

Gewusst wie: Herstellen einer Verbindung zu Daten in einer Datenbank

Gewusst wie: Validieren von Daten während Spaltenänderungen

Exemplarische Vorgehensweise: Anzeigen von Daten in einem Formular in einer Windows-Anwendung

Konzepte

Neue Datenfeatures

Übersicht über TableAdapters

DataSet-Designer

Übersicht über Datenquellen

Referenz

Datenquellenfenster

Ereignisse (C#-Programmierhandbuch)

Weitere Ressourcen

Exemplarische Vorgehensweisen zur Arbeit mit Daten

Überprüfen von Daten