Condividi tramite


Ordinamento e filtro dei dati

Il DataView fornisce diversi modi per ordinare e filtrare i dati in un DataTable oggetto.

  • È possibile usare la Sort proprietà per specificare gli ordini di ordinamento di una o più colonne e includere i parametri ASC (crescente) e DESC (decrescente).

  • È possibile utilizzare la ApplyDefaultSort proprietà per creare automaticamente un ordinamento, in ordine crescente, in base alla colonna chiave primaria o alle colonne della tabella. ApplyDefaultSort si applica solo quando la proprietà Sort è un riferimento Null o una stringa vuota e quando la tabella ha una chiave primaria definita.

  • È possibile utilizzare la RowFilter proprietà per specificare subset di righe in base ai relativi valori di colonna. Per informazioni dettagliate sulle espressioni valide per la proprietà RowFilter , vedere le informazioni di riferimento per la Expression proprietà della DataColumn classe .

    Se si desidera restituire i risultati di una determinata query sui dati, anziché fornire una visualizzazione dinamica di un subset dei dati, utilizzare i Find metodi o FindRows di DataView per ottenere prestazioni ottimali anziché impostare la proprietà RowFilter . L'impostazione della proprietà RowFilter ricompila l'indice per i dati, aggiungendo overhead all'applicazione e riducendo le prestazioni. La proprietà RowFilter viene usata meglio in un'applicazione associata a dati in cui un controllo associato visualizza i risultati filtrati. I metodi Find e FindRows sfruttano l'indice corrente senza richiedere la ricompilazione dell'indice. Per altre informazioni sui metodi Find e FindRows , vedere Ricerca di righe.

  • È possibile utilizzare la RowStateFilter proprietà per specificare le versioni di riga da visualizzare. DataView gestisce in modo implicito la versione di riga da esporre a seconda dell'oggetto RowState della riga sottostante. Ad esempio, se RowStateFilter è impostato su DataViewRowState.Deleted, DataView espone la versione di riga originale di tutte le righe eliminate perché non esiste alcuna versione di riga corrente . È possibile determinare la versione di riga di una riga esposta usando la proprietà RowVersion di DataRowView.

    La tabella seguente illustra le opzioni per DataViewRowState.

    Opzioni di DataViewRowState Descrizione
    CurrentRows La versione di riga attuale di tutte le righe Non modificate, Aggiunte e Modificate. Si tratta dell'impostazione predefinita.
    Aggiunto Versione riga corrente di tutte le righe aggiunte .
    eliminato Versione di riga originale di tutte le righe eliminate .
    ModifiedCurrent Versione corrente della riga di tutte le righe modificate.
    Originale Modificato Versione di riga originale di tutte le righe modificate .
    Nessuno Nessuna riga.
    OriginalRows Versione di riga originale di tutte le righe non modificate, modificate ed eliminate .
    Inalterato Versione di riga corrente di tutte le righe non modificate .

Per altre informazioni sugli stati di riga e sulle versioni di riga, vedere Stati di riga e versioni di riga.

Nell'esempio di codice seguente viene creata una visualizzazione che mostra tutti i prodotti in cui il numero di unità in magazzino è minore o uguale al livello di riordinamento, ordinato prima in base all'ID fornitore e 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);  

Vedere anche