Share via


Ordinamento e applicazione di filtri ai dati

In DataView sono disponibili diversi metodi di ordinamento e applicazione di filtri ai dati in una 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).

  • La proprietà ApplyDefaultSort consente di creare automaticamente un criterio di ordinamento ascendente, basato sulla colonna o sulle colonne di chiave primaria della tabella. La proprietà ApplyDefaultSort viene applicata solo se la proprietà Sort è un riferimento null o una stringa vuota e quando nella tabella è stata definita una chiave primaria.

  • La proprietà RowFilter consente di specificare subset di righe sulla base dei relativi valori di colonna. Per informazioni dettagliate sulle espressioni valide per la proprietà RowFilter, vedere le informazioni di riferimento per la proprietà Expression della classe DataColumn.

    Per restituire i risultati di una particolare query sui dati anziché fornire una visualizzazione dinamica di un subset di dati, si consiglia di usare i metodi Find o FindRows di DataView invece di impostare la proprietà RowFilter, se si desidera ottenere prestazioni ottimali. L'impostazione della proprietà RowFilter provoca una ricompilazione dell'indice dei dati, aggiungendo un sovraccarico all'applicazione e riducendo le prestazioni. L'utilizzo della proprietà RowFilter è consigliato in applicazioni con associazioni a dati, in cui i risultati filtrati vengono visualizzati da un controllo associato. I metodi Find e FindRows si avvalgono dell'indice corrente, senza che sia necessario ricompilarlo. Per altre informazioni sui metodi Find e FindRows, vedere Ricerca di righe.

  • La proprietà RowStateFilter consente di specificare le versioni di riga da visualizzare. Le versioni di riga da esporre vengono gestite implicitamente da DataView sulla base dell'oggetto RowState della riga sottostante. Se ad esempio RowStateFilter è impostato su DataViewRowState.Deleted, DataView esporrà la versione di riga Original di tutte le righe Deleted, poiché non è disponibile alcuna versione di riga Current. La proprietà RowVersion di DataRowView consente di determinare la versione di riga di una riga esposta.

    Nella tabella seguente vengono mostrate le opzioni disponibili per DataViewRowState.

    Opzioni di DataViewRowState Descrizione
    CurrentRows La versione di riga Current di tutte le righe Unchanged, Added e Modified. Si tratta dell'impostazione predefinita.
    Aggiunto La versione di riga Current di tutte le righe Added.
    Eliminato La versione di riga Original di tutte le righe Deleted.
    ModifiedCurrent La versione di riga Current di tutte le righe Modified.
    ModifiedOriginal La versione di riga Original di tutte le righe Modified.
    Nessuno Nessuna riga.
    OriginalRows La versione di riga Original di tutte le righe Unchanged, Modified e Deleted.
    Unchanged La versione di riga Current di tutte le righe Unchanged.

Per altre informazioni sugli stati e sulle versioni delle righe, vedere Stati e versioni delle righe.

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.

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

Vedi anche