Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
È possibile accedere al contenuto di un DataTable oggetto utilizzando le raccolte Rows e Columns di DataTable. È anche possibile utilizzare il Select metodo per restituire subset dei dati in una tabella DataTable in base ai criteri, inclusi i criteri di ricerca, l'ordinamento e lo stato della riga. Inoltre, è possibile usare il metodo di Find durante la ricerca di una determinata riga usando un valore di chiave primaria.
Il metodo Select dell'oggetto DataTablerestituisce un set di DataRow oggetti che corrispondono ai criteri specificati.
Select accetta argomenti facoltativi di un'espressione di filtro, un'espressione di ordinamento e DataViewRowState. L'espressione di filtro identifica le righe da restituire in base ai valori DataColumn , ad esempio LastName = 'Smith'
. L'espressione di ordinamento segue le convenzioni SQL standard per l'ordinamento delle colonne, ad esempio LastName ASC, FirstName ASC
. Per le regole sulla scrittura di espressioni, vedere la Expression proprietà della classe DataColumn .
Suggerimento
Se si eseguono diverse chiamate al metodo Select di un oggetto DataTable, è possibile aumentare le prestazioni creando prima un oggetto DataView per DataTable. La creazione di DataView indicizza le righe della tabella. Il metodo Select usa quindi tale indice, riducendo significativamente il tempo necessario per generare il risultato della query. Per informazioni sulla creazione di un oggetto DataView per un oggetto DataTable, vedere DataViews.
Il metodo Select determina la versione delle righe da visualizzare o modificare in base a un oggetto DataViewRowState. Nella tabella seguente vengono descritti i possibili valori di enumerazione DataViewRowState .
DataViewRowState Valore | Descrizione |
---|---|
CurrentRows | Righe correnti, includendo righe non modificate, righe aggiunte e righe modificate. |
eliminato | Una riga eliminata. |
ModifiedCurrent | Una versione corrente, ovvero una versione modificata dei dati originali. Vedere ModifiedOriginal. |
Originale Modificato | Versione originale di tutte le righe modificate. La versione corrente è disponibile usando ModifiedCurrent. |
Aggiunto | Nuova riga. |
Nessuno | Nessuno. |
OriginalRows | Righe originali, comprese quelle eliminate e non modificate. |
Inalterato | Riga non modificata. |
Nell'esempio seguente l'oggetto DataSet viene filtrato in modo che si stia usando solo le righe di cui DataViewRowState è impostato su 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 metodo Select può essere utilizzato per restituire righe con valori rowstate o valori di campo diversi. Nell'esempio seguente viene restituita una matrice DataRow che fa riferimento a tutte le righe eliminate e restituisce un'altra matrice DataRow che fa riferimento a tutte le righe, ordinate da CustLName, in cui la colonna CustID è maggiore di 5. Per informazioni su come visualizzare le informazioni nella riga Eliminata , vedere Stati di riga e versioni di riga.
' 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");