Freigeben über


Sortieren und Filtern von Daten mit einer DataView

DataView bietet mehrere Möglichkeiten zum Sortieren und Filtern von Daten in einer DataTable:

  • Mit der Sort-Eigenschaft können Sie einzelne oder mehrere Sortierreihenfolgen für Spalten angeben und die Parameter ASC (ascending = aufsteigend) und DESC (descending = absteigend) einfügen.

  • Mit der ApplyDefaultSort-Eigenschaft können Sie eine Sortierreihenfolge automatisch in aufsteigender Reihenfolge, basierend auf der Primärschlüsselspalte oder den Spalten der Tabelle erstellen. ApplyDefaultSort kann nur angewendet werden, wenn es sich bei der Sort-Eigenschaft um einen NULL-Verweis oder eine leere Zeichenfolge handelt und wenn für die Tabelle ein Primärschlüssel definiert wurde.

  • Mit der RowFilter-Eigenschaft können Sie Teilmengen von Zeilen angeben, die auf den Spaltenwerten basieren. Einzelheiten zu gültigen Ausdrücken für die RowFilter-Eigenschaft finden Sie in den Referenzinformationen für die Expression-Eigenschaft der DataColumn-Klasse.

    Wenn Sie die Ergebnisse einer bestimmten Abfrage von Daten zurückgeben möchten, anstatt eine dynamische Ansicht von einer Teilmenge von Daten zu erhalten, verwenden Sie die Methoden Find oder FindRows der DataView, denn sie sind für diesen Zweck besser geeignet als die RowFilter-Eigenschaft. Wenn Sie die RowFilter-Eigenschaft festlegen, wird der Index für die Daten neu erstellt, wodurch zusätzlicher Verwaltungsaufwand für die Anwendung entsteht und die Leistung verringert wird. Die RowFilter-Eigenschaft wird am besten in einer datengebundenen Anwendung verwendet, in der ein gebundenes Steuerelement gefilterte Ergebnisse anzeigt. Die Methoden Find und FindRows nutzen den aktuellen Index, ohne dass der Index neu erstellt werden muss. Weitere Informationen über die Methoden Find und FindRows finden Sie unter Durchsuchen einer DataView.

  • Mit der RowStateFilter-Eigenschaft können Sie angeben, welche Zeilenversionen angezeigt werden. Die DataView verwaltet implizit, welche Zeilenversion, abhängig vom RowState der zugrunde liegenden Zeile, verfügbar gemacht werden soll. Wenn z. B. DataViewRowState.Deleted für den RowStateFilter festgelegt ist, macht die DataView die Original-Zeilenversion aller gelöschten (Deleted) Zeilen verfügbar, weil es keine aktuelle (Current) Zeilenversion gibt. Mit der RowVersion-Eigenschaft der DataRowView können Sie feststellen, welche Zeilenversion einer Zeile verfügbar gemacht wird.

    Die folgende Tabelle enthält die Optionen für DataViewRowState.

    DataViewRowState Beschreibung
    CurrentRows Die Current-Zeilenversion von allen Zeilen mit dem Status Unchanged, Added und Modified. Dies ist die Standardeinstellung.
    Added Die Current-Zeilenversion von allen Added-Zeilen.
    Deleted Die Original-Zeilenversion von allen Deleted-Zeilen.
    ModifiedCurrent Die Current-Zeilenversion von allen Modified-Zeilen.
    ModifiedOriginal Die Original-Zeilenversion von allen Modified-Zeilen.
    None Keine Zeilen.
    OriginalRows Die Original-Zeilenversion von allen Zeilen mit dem Status Unchanged, Modified und Deleted.
    Unchanged Die Current-Zeilenversion von allen Unchanged-Zeilen.

Weitere Informationen zu Zeilenstatus und Zeilenversionen finden Sie unter Zeilenstatus und Zeilenversion.

Im folgenden Codebeispiel wird eine Ansicht erstellt, die alle Produkte anzeigt, bei denen die Einheiten im Lager kleiner als oder gleich der Neusortierungsebene ist, wobei zuerst nach der Lieferanten-ID und dann nach dem Produktnamen sortiert wird.

Dim prodView As DataView = New DataView(prodDS.Tables("Products"), _
                                        "UnitsInStock <= ReorderLevel", _
                                        "SupplierID, ProductName", _
                                        DataViewRowState.CurrentRows)
[C#]
DataView prodView = new DataView(prodDS.Tables["Products"],
                                 "UnitsInStock <= ReorderLevel",
                                 "SupplierID, ProductName",
                                 DataViewRowState.CurrentRows);

Siehe auch

Erstellen einer DataView | DataViewRowState-Enumeration | DataColumn.Expression-Eigenschaft | DataTable-Klasse | DataView-Klasse