Ordinamento e applicazione di filtri ai datiSorting and Filtering Data

In DataView sono disponibili diversi metodi di ordinamento e applicazione di filtri ai dati in una DataTable:The DataView provides several ways of sorting and filtering data in a DataTable:

  • La proprietà Sort viene usata per specificare criteri di ordinamento basati su una o più colonne e includere i parametri ASC (ascendente) e DESC (discendente).You can use the Sort property to specify single or multiple column sort orders and include ASC (ascending) and DESC (descending) parameters.

  • La proprietà ApplyDefaultSort consente di creare automaticamente un criterio di ordinamento ascendente, basato sulla colonna o sulle colonne di chiave primaria della tabella.You can use the ApplyDefaultSort property to automatically create a sort order, in ascending order, based on the primary key column or columns of the table. ApplyDefaultSort viene applicata solo se il ordinamento proprietà è un riferimento null o una stringa vuota, e quando la tabella contiene una chiave primaria definita.ApplyDefaultSort only applies when the Sort property is a null reference or an empty string, and when the table has a primary key defined.

  • La proprietà RowFilter consente di specificare subset di righe sulla base dei relativi valori di colonna.You can use the RowFilter property to specify subsets of rows based on their column values. Per informazioni dettagliate sulle espressioni valide per il RowFilter proprietà, vedere le informazioni di riferimento per il Expression proprietà del DataColumn classe.For details about valid expressions for the RowFilter property, see the reference information for the Expression property of the DataColumn class.

    Se si desidera restituire i risultati di una particolare query sui dati anziché fornire una visualizzazione dinamica di un subset dei dati, utilizzare il Find o FindRows metodi il DataView per ottenere prestazioni ottimali anziché l'impostazione di RowFilter proprietà.If you want to return the results of a particular query on the data, as opposed to providing a dynamic view of a subset of the data, use the Find or FindRows methods of the DataView to achieve best performance rather than setting the RowFilter property. L'impostazione di RowFilter proprietà ricompilato l'indice per i dati, aggiungendo un sovraccarico all'applicazione e riducendo le prestazioni.Setting the RowFilter property rebuilds the index for the data, adding overhead to your application and decreasing performance. Il RowFilter proprietà è più adatta in un'applicazione con associazione a dati in cui i risultati filtrati vengono visualizzati da un controllo associato.The RowFilter property is best used in a data-bound application where a bound control displays filtered results. Il trovare e FindRows metodi si avvalgono dell'indice corrente senza richiedere l'indice da ricompilare.The Find and FindRows methods leverage the current index without requiring the index to be rebuilt. Per ulteriori informazioni sul trovare e FindRows metodi, vedere ricerca righe.For more information about the Find and FindRows methods, see Finding Rows.

  • La proprietà RowStateFilter consente di specificare le versioni di riga da visualizzare.You can use the RowStateFilter property to specify which row versions to view. Il DataView gestisce in modo implicito la versione di riga per esporre varia a seconda di RowState della riga sottostante.The DataView implicitly manages which row version to expose depending upon the RowState of the underlying row. Ad esempio, se il RowStateFilter è impostata su DataViewRowState. Deleted, DataView espone il originale versione di riga tutti Deleted righe in quanto non esiste alcun corrente versione di riga.For example, if the RowStateFilter is set to DataViewRowState.Deleted, the DataView exposes the Original row version of all Deleted rows because there is no Current row version. È possibile determinare la versione di riga di una riga è esposto tramite la RowVersion proprietà del DataRowView.You can determine which row version of a row is being exposed by using the RowVersion property of the DataRowView.

    Nella tabella seguente illustra le opzioni per DataViewRowState.The following table shows the options for DataViewRowState.

    Opzioni di DataViewRowStateDataViewRowState options DescrizioneDescription
    CurrentRowsCurrentRows Il corrente versione della riga di tutti i Unchanged, Added, e Modified righe.The Current row version of all Unchanged, Added, and Modified rows. Questa è l'impostazione predefinita.This is the default.
    AggiuntaAdded Il corrente versione di riga all Added righe.The Current row version of all Added rows.
    eliminatoDeleted Il originale versione di riga all Deleted righe.The Original row version of all Deleted rows.
    ModifiedCurrentModifiedCurrent Il corrente versione di riga all Modified righe.The Current row version of all Modified rows.
    ModifiedOriginalModifiedOriginal Il originale versione di riga all Modified righe.The Original row version of all Modified rows.
    NoneNone Nessuna riga.No rows.
    OriginalRowsOriginalRows Il originale versione della riga di tutti i Unchanged, Modified, e Deleted righe.The Original row version of all Unchanged, Modified, and Deleted rows.
    Non modificatoUnchanged Il corrente versione di riga all Unchanged righe.The Current row version of all Unchanged rows.

Per ulteriori informazioni sulla riga stati e le versioni di riga, vedere stati delle righe e le versioni di riga.For more information about row states and row versions, see Row States and Row Versions.

Nell'esempio di codice seguente viene creata una visualizzazione in cui vengono mostrati tutti i prodotti il cui numero di unità disponibili in magazzino è inferiore o uguale al livello di riordinamento. I prodotti vengono ordinati prima in base all'identificatore del fornitore, quindi in base al nome del prodotto.The following code example creates a view that shows all the products where the number of units in stock is less than or equal to the reorder level, sorted first by supplier ID and then by product name.

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);  

Vedere ancheSee Also

DataViewRowState
DataColumn.Expression
DataTable
DataView
DataViewDataViews
Provider gestiti ADO.NET e Centro per sviluppatori di set di datiADO.NET Managed Providers and DataSet Developer Center