Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Możesz wyszukiwać wiersze według ich wartości klucza sortowania, korzystając z metod Find i FindRows elementu DataView. pl-PL: Wielkość liter wartości wyszukiwania w metodach Find i FindRows jest określana przez właściwość CaseSensitive bazowego elementu DataTable. Wartości wyszukiwania muszą być zgodne z istniejącymi wartościami klucza sortowania w całości, aby zwrócić wynik.
Metoda Find zwraca liczbę całkowitą z indeksem DataRowView , który odpowiada kryteriom wyszukiwania. Jeśli więcej niż jeden wiersz spełnia kryteria wyszukiwania, zwracany jest tylko indeks pierwszego dopasowania DataRowView . Jeśli nie znaleziono dopasowań, Find zwraca wartość -1.
Aby zwrócić wyniki wyszukiwania zgodne z wieloma wierszami, użyj metody FindRows.
FindRows działa podobnie jak metoda Find, z tą różnicą, że zwraca tablicę DataRowView, która odwołuje się do wszystkich pasujących wierszy w widoku DataView. Jeśli nie znaleziono dopasowań, tablica DataRowView będzie pusta.
Aby użyć metod Find lub FindRows, należy określić kolejność sortowania, ustawiając ApplyDefaultSort na true lub korzystając z właściwości Sort. Jeśli nie określono kolejności sortowania, zostanie zgłoszony wyjątek.
Metody Find i FindRows przyjmują tablicę wartości jako dane wejściowe, których długość odpowiada liczbie kolumn w kolejności sortowania. W przypadku sortowania w jednej kolumnie można przekazać pojedynczą wartość. Przy kolejności sortowania zawierającej wiele kolumn należy przekazać tablicę obiektów. Należy pamiętać, że w przypadku sortowania w wielu kolumnach wartości w tablicy obiektów muszą być zgodne z kolejnością kolumn określonych we Sort właściwości DataView.
Poniższy przykład kodu przedstawia metodę Find wywoływaną względem elementu DataView z pojedynczym porządkiem sortowania w kolumnie.
Dim custView As DataView = _
New DataView(custDS.Tables("Customers"), "", _
"CompanyName", DataViewRowState.CurrentRows)
Dim rowIndex As Integer = custView.Find("The Cracker Box")
If rowIndex = -1 Then
Console.WriteLine("No match found.")
Else
Console.WriteLine("{0}, {1}", _
custView(rowIndex)("CustomerID").ToString(), _
custView(rowIndex)("CompanyName").ToString())
End If
DataView custView = new DataView(custDS.Tables["Customers"], "",
"CompanyName", DataViewRowState.CurrentRows);
int rowIndex = custView.Find("The Cracker Box");
if (rowIndex == -1)
Console.WriteLine("No match found.");
else
Console.WriteLine("{0}, {1}",
custView[rowIndex]["CustomerID"].ToString(),
custView[rowIndex]["CompanyName"].ToString());
Jeśli właściwość Sort określa wiele kolumn, należy przekazać tablicę obiektów z wartościami wyszukiwania dla każdej kolumny w kolejności określonej przez Sort właściwość, jak w poniższym przykładzie kodu.
Dim custView As DataView = _
New DataView(custDS.Tables("Customers"), "", _
"CompanyName, ContactName", _
DataViewRowState.CurrentRows)
Dim foundRows() As DataRowView = _
custView.FindRows(New object() {"The Cracker Box", "Liu Wong"})
If foundRows.Length = 0 Then
Console.WriteLine("No match found.")
Else
Dim myDRV As DataRowView
For Each myDRV In foundRows
Console.WriteLine("{0}, {1}", _
myDRV("CompanyName").ToString(), myDRV("ContactName").ToString())
Next
End If
DataView custView = new DataView(custDS.Tables["Customers"], "",
"CompanyName, ContactName",
DataViewRowState.CurrentRows);
DataRowView[] foundRows =
custView.FindRows(new object[] {"The Cracker Box", "Liu Wong"});
if (foundRows.Length == 0)
Console.WriteLine("No match found.");
else
foreach (DataRowView myDRV in foundRows)
Console.WriteLine("{0}, {1}", myDRV["CompanyName"].ToString(),
myDRV["ContactName"].ToString());