Sortieren und Filtern von Daten

Die DataView stellt mehrere Methoden zum Sortieren und Filtern von Daten in einer DataTable bereit:

  • 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.

  • Sie können mithilfe der ApplyDefaultSort-Eigenschaft automatisch eine Sortierreihenfolge in aufsteigender Reihenfolge auf Grundlage der Primärschlüsselspalte bzw. -spalten der Tabelle erstellen. ApplyDefaultSort ist nur gültig, wenn die Sort-Eigenschaft ein NULL-Verweis oder eine leere Zeichenfolge ist für die Tabelle ein Primärschlüssel definiert ist.

  • Mit der RowFilter-Eigenschaft können Sie Teilmengen von Zeilen angeben, die auf den Spaltenwerten basieren. Ausführliche Informationen 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 Find-Methode oder die FindRows-Methode 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 Verwaltungsmehraufwand 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 zu den Methoden Find und FindRows finden Sie unter Suchen nach Zeilen.

  • Mit der RowStateFilter-Eigenschaft können Sie festlegen, welche Zeilenversionen Sie anzeigen möchten. Die DataView verwaltet implizit, welche Zeilenversion, abhängig vom RowState der zugrunde liegenden Zeile, verfügbar gemacht werden soll. Wenn z. B. der RowStateFilter auf DataViewRowState.Deleted festgelegt ist, macht die DataView die Original-Zeilenversion aller Deleted-Zeilen verfügbar, da keine Current-Zeilenversion vorliegt. Mit der RowVersion-Eigenschaft der DataRowView können Sie bestimmen, welche Zeilenversion einer Zeile verfügbar gemacht wird.

    In der folgenden Tabelle sind die Optionen für DataViewRowState enthalten.

    "DataViewRowState"-Optionen BESCHREIBUNG
    CurrentRows Die Current-Zeilenversion von allen Zeilen mit dem Status Unchanged, Added und Modified Dies ist die Standardoption.
    Hinzugefügt Die Current-Zeilenversion von allen Added-Zeilen
    Gelöscht 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
    Unverändert Die Current-Zeilenversion von allen Unchanged-Zeilen

Weitere Informationen zu Zeilenzuständen und Zeilenversionen finden Sie unter Zeilenzustände und Zeilenversionen.

Im folgenden Codebeispiel wird eine Ansicht erstellt, die alle Produkte anzeigt, bei denen die Anzahl der 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)  
DataView prodView = new DataView(prodDS.Tables["Products"],  
   "UnitsInStock <= ReorderLevel",  
   "SupplierID, ProductName",  
   DataViewRowState.CurrentRows);  

Siehe auch