Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dostęp do zawartości obiektu DataTable można uzyskać przy użyciu kolekcji Wiersze i kolumny tabeli DataTable. Można również użyć Select metody , aby zwrócić podzestawy danych w tabeli DataTable zgodnie z kryteriami, w tym kryteria wyszukiwania, kolejność sortowania i stan wiersza. Ponadto można użyć Find metody elementu DataRowCollection podczas wyszukiwania określonego wiersza przy użyciu wartości klucza podstawowego.
Metoda Select obiektu DataTable zwraca zestaw DataRow obiektów spełniających określone kryteria.
Select przyjmuje opcjonalne argumenty w postaci wyrażenia filtru, wyrażenia sortowania i DataViewRowState. Wyrażenie filtru określa, które wiersze mają być zwracane na podstawie wartości DataColumn , takich jak LastName = 'Smith'
. Wyrażenie sortowania jest zgodne ze standardowymi konwencjami SQL dotyczącymi porządkowania kolumn, na przykład LastName ASC, FirstName ASC
. Aby uzyskać informacje o regułach pisania wyrażeń, zobacz Expression właściwość klasy DataColumn .
Wskazówka
Jeśli wykonujesz kilka wywołań metody Select tabeli DataTable, możesz zwiększyć wydajność, tworząc DataView element dla tabeli DataTable. Tworzenie obiektu DataView indeksuje wiersze tabeli. Następnie metoda Select używa tego indeksu, co znacznie skraca czas generowania wyniku zapytania. Aby uzyskać informacje na temat tworzenia elementu DataView dla tabeli DataTable, zobacz DataViews.
Metoda Select określa wersję wierszy do wyświetlenia lub manipulowania na podstawie elementu DataViewRowState. W poniższej tabeli opisano możliwe wartości wyliczenia DataViewRowState .
Wartość stanu DataViewRowState | Opis |
---|---|
CurrentRows | Bieżące wiersze, w tym bez zmian, dodane i zmodyfikowane wiersze. |
usunięte | Usunięty wiersz. |
ModifiedCurrent | Bieżąca wersja, która jest zmodyfikowaną wersją oryginalnych danych. (Zobacz ModifiedOriginal). |
ZmodyfikowanyOryginał | Oryginalna wersja wszystkich zmodyfikowanych wierszy. Bieżąca wersja jest dostępna przy użyciu metody ModifiedCurrent. |
Dodane | Nowy wiersz. |
Brak | Żaden. |
OriginalRows | Oryginalne wiersze, w tym bez zmian i usunięte wiersze. |
Niezmienione | Niezmieniony wiersz. |
W poniższym przykładzie obiekt DataSet jest filtrowany tak, aby działał tylko z wierszami, których właściwość DataViewRowState jest ustawiona na 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);
}
}
Metoda Select może służyć do zwracania wierszy z różnymi wartościami RowState lub wartościami pól. Poniższy przykład zwraca tablicę DataRow , która odwołuje się do wszystkich wierszy, które zostały usunięte, i zwraca kolejną tablicę DataRow odwołującą się do wszystkich wierszy uporządkowanych przez CustLName, gdzie kolumna CustID jest większa niż 5. Aby uzyskać informacje na temat wyświetlania informacji w usuniętym wierszu, zobacz Stany wierszy i Wersje wierszy.
' 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");