Visualizzazione di dati in un oggetto DataTableViewing Data in a DataTable

È possibile accedere al contenuto di un DataTable utilizzando il righe e colonne insiemi di DataTable.You can access the contents of a DataTable by using the Rows and Columns collections of the DataTable. È inoltre possibile utilizzare il Select per restituire subset di dati in un DataTable in base ai criteri compresi i criteri di ricerca, ordinamento e lo stato della riga.You can also use the Select method to return subsets of the data in a DataTable according to criteria including search criteria, sort order, and row state. Inoltre, è possibile utilizzare il Find metodo il DataRowCollection durante la ricerca di una particolare riga mediante un valore di chiave primaria.Additionally, you can use the Find method of the DataRowCollection when searching for a particular row using a primary key value.

Il selezionare metodo il DataTable oggetto restituisce un set di DataRow gli oggetti che soddisfano i criteri specificati.The Select method of the DataTable object returns a set of DataRow objects that match the specified criteria. Selezionare accetta gli argomenti facoltativi di un'espressione di filtro, un'espressione di ordinamento e DataViewRowState.Select takes optional arguments of a filter expression, sort expression, and DataViewRowState. L'espressione di filtro identifica le righe da restituire in base alle DataColumn valori, ad esempio LastName = 'Smith'.The filter expression identifies which rows to return based on DataColumn values, such as LastName = 'Smith'. Per l'espressione di ordinamento vengono usate le convenzioni SQL standard per l'ordinamento di colonne, ad esempio LastName ASC, FirstName ASC.The sort expression follows standard SQL conventions for ordering columns, for example LastName ASC, FirstName ASC. Per le regole sulla scrittura di espressioni, vedere il Expression proprietà del DataColumn classe.For rules about writing expressions, see the Expression property of the DataColumn class.

Suggerimento

Se si esegue un numero di chiamate per il selezionare metodo di un DataTable, è possibile migliorare le prestazioni creando innanzitutto un DataView per il DataTable.If you are performing a number of calls to the Select method of a DataTable, you can increase performance by first creating a DataView for the DataTable. Creazione di DataView indicizzate le righe della tabella.Creating the DataView indexes the rows of the table. Il selezionare metodo quindi utilizza l'indicizzazione, riducendo notevolmente il tempo necessario per generare il risultato della query.The Select method then usees that index, significantly reducing the time to generate the query result. Per informazioni sulla creazione di un DataView per un DataTable, vedere DataView.For information about creating a DataView for a DataTable, see DataViews.

Il selezionare (metodo) determina quale versione delle righe da visualizzare o modificare in base a un DataViewRowState.The Select method determines which version of the rows to view or manipulate based on a DataViewRowState. Nella tabella seguente vengono descritti i possibili DataViewRowState valori di enumerazione.The following table describes the possible DataViewRowState enumeration values.

Valore di DataViewRowStateDataViewRowState value DescrizioneDescription
CurrentRowsCurrentRows Righe correnti, incluse le righe non modificate, aggiunte e modificate.Current rows including unchanged, added, and modified rows.
eliminatoDeleted Riga eliminata.A deleted row.
ModifiedCurrentModifiedCurrent Una versione corrente, ovvero una versione modificata dei dati originali.A current version, which is a modified version of original data. (Vedere ModifiedOriginal.)(See ModifiedOriginal.)
ModifiedOriginalModifiedOriginal La versione originale di tutte le righe modificate.The original version of all modified rows. La versione corrente è disponibile tramite ModifiedCurrent.The current version is available using ModifiedCurrent.
AggiuntaAdded Nuova riga.A new row.
NoneNone Nessuno.None.
OriginalRowsOriginalRows Righe originali, tra cui righe non modificate ed eliminate.Original rows, including unchanged and deleted rows.
Non modificatoUnchanged Riga non modificata.An unchanged row.

Nell'esempio seguente, il DataSet oggetto è filtrato in modo che si utilizza soltanto le righe il cui DataViewRowState è impostato su CurrentRows.In the following example, the DataSet object is filtered so that you are only working with rows whose DataViewRowState is set to CurrentRows.

Dim column As DataColumn  
Dim row As DataRow  

Dim currentRows() As DataRow = _  
    workTable.Select(Nothing, Nothing, DataViewRowState.CurrentRows)  

If (currentRows.Length < 1 ) Then  
  Console.WriteLine("No Current Rows Found")  
Else  
  For Each column in workTable.Columns  
    Console.Write(vbTab & column.ColumnName)  
  Next  

  Console.WriteLine(vbTab & "RowState")  

  For Each row In currentRows  
    For Each column In workTable.Columns  
      Console.Write(vbTab & row(column).ToString())  
    Next  

    Dim rowState As String = _  
        System.Enum.GetName(row.RowState.GetType(), row.RowState)  
    Console.WriteLine(vbTab & rowState)  
  Next  
End If  
DataRow[] currentRows = workTable.Select(  
    null, null, DataViewRowState.CurrentRows);  

if (currentRows.Length < 1 )  
  Console.WriteLine("No Current Rows Found");  
else  
{  
  foreach (DataColumn column in workTable.Columns)  
    Console.Write("\t{0}", column.ColumnName);  

  Console.WriteLine("\tRowState");  

  foreach (DataRow row in currentRows)  
  {  
    foreach (DataColumn column in workTable.Columns)  
      Console.Write("\t{0}", row[column]);  

    Console.WriteLine("\t" + row.RowState);  
  }  
}  

Il selezionare metodo può essere utilizzato per restituire le righe con diversi RowState valori o valori di campo.The Select method can be used to return rows with differing RowState values or field values. Nell'esempio seguente viene restituito un DataRow matrice che fa riferimento a tutte le righe che sono state eliminate e restituisce un'altra DataRow matrice che fa riferimento a tutte le righe, ordinate in base CustLName, dove il CustID colonna è maggiore di 5.The following example returns a DataRow array that references all rows that have been deleted, and returns another DataRow array that references all rows, ordered by CustLName, where the CustID column is greater than 5. Per informazioni su come visualizzare le informazioni contenute nel Deleted di riga, vedere stati delle righe e le versioni di riga.For information about how to view the information in the Deleted row, see Row States and Row Versions.

' Retrieve all deleted rows.  
Dim deletedRows() As DataRow = workTable.Select(Nothing, Nothing, DataViewRowState.Deleted)  

' Retrieve rows where CustID > 5, and order by CustLName.  
Dim custRows() As DataRow = workTable.Select( _  
    "CustID > 5", "CustLName ASC")  
// Retrieve all deleted rows.  
DataRow[] deletedRows = workTable.Select(  
    null, null, DataViewRowState.Deleted);  

// Retrieve rows where CustID > 5, and order by CustLName.  
DataRow[] custRows = workTable.Select("CustID > 5", "CustLName ASC");  

Vedere ancheSee Also

DataRow
DataSet
DataTable
DataViewRowState
Manipolazione di dati in un oggetto DataTableManipulating Data in a DataTable
Stati e versioni delle righeRow States and Row Versions
Provider gestiti ADO.NET e Centro per sviluppatori di set di datiADO.NET Managed Providers and DataSet Developer Center