Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Du kan komma åt innehållet i en DataTable genom att använda Rows- och Columns-samlingarna i DataTable. Du kan också använda Select metoden för att returnera delmängder av data i en DataTable enligt villkor, inklusive sökvillkor, sorteringsordning och radtillstånd. Dessutom kan du använda Find-metoden av DataRowCollection när du söker efter en viss rad med hjälp av ett primärnyckelvärde.
- Select metoden för DataTable objektet returnerar en uppsättning DataRow objekt som matchar de angivna kriterierna.
Select tar valfria argument för ett filteruttryck, sorteringsuttryck och DataViewRowState. Filteruttrycket identifierar vilka rader som ska returneras baserat på DataColumn värden, till exempel LastName = 'Smith'. Sorteringsuttrycket följer SQL-standardkonventioner för att sortera kolumner, till exempel LastName ASC, FirstName ASC. Regler för att skriva uttryck finns i Expression egenskapen för DataColumn klassen.
Tips/Råd
Om du utför ett antal anrop till Select metoden för en DataTable kan du öka prestandan genom att först skapa en DataView för DataTable. Skapa DataView indexerar raderna i tabellen. Metoden Select använder sedan det indexet, vilket avsevärt minskar tiden för att generera frågeresultatet. Information om hur du skapar en DataView för en DataTable finns i DataViews.
Metoden Select avgör vilken version av raderna som ska visas eller manipuleras baserat på en DataViewRowState. I följande tabell beskrivs möjliga DataViewRowState uppräkningsvärden.
| DataViewRowState-värde | Beskrivning |
|---|---|
| CurrentRows | Aktuella rader, inklusive oförändrade, tillagda och ändrade rader. |
| Borttagen | En borttagen rad. |
| ModifiedCurrent | En aktuell version, som är en modifierad version av ursprungliga data. (Se ModifiedOriginal.) |
| ÄndradOriginal | Den ursprungliga versionen av alla ändrade rader. Den aktuella versionen är tillgänglig med ModifiedCurrent. |
| Tillade | En ny rad. |
| Ingen | Ingen. |
| OriginalRows | Ursprungliga rader, inklusive oförändrade och borttagna rader. |
| Oförändrad | En oförändrad rad. |
I följande exempel DataSet filtreras objektet så att du bara arbetar med rader vars DataViewRowState är inställt på 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);
}
}
Metoden Select kan användas för att returnera rader med olika RowState värden eller fältvärden. I följande exempel returneras en DataRow matris som refererar till alla rader som har tagits bort och returnerar en annan DataRow matris som refererar till alla rader, ordnade efter CustLName, där CustID kolumnen är större än 5. Information om hur du visar informationen på raden finns i DeletedRadtillstånd och Radversioner.
' 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");