Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você pode pesquisar linhas de acordo com seus valores de chave de classificação usando os métodos Find e FindRows do DataView. A sensibilidade a maiúsculas e minúsculas dos valores de pesquisa nos métodos Find e FindRows é determinada pela propriedade CaseSensitive do subjacente DataTable. Os valores de pesquisa devem corresponder aos valores de chave de classificação existentes em sua totalidade para retornar um resultado.
O Find método retorna um inteiro com o índice do DataRowView que corresponde aos critérios de pesquisa. Se mais de uma linha corresponder aos critérios de pesquisa, somente o índice da primeira correspondência DataRowView será retornado. Se nenhuma correspondência for encontrada, Find retornará -1.
Para retornar os resultados da pesquisa que correspondem a várias linhas, use o FindRows método.
FindRows funciona exatamente como o Find método, exceto que ele retorna uma DataRowView matriz que faz referência a todas as linhas correspondentes no DataView. Se nenhuma correspondência for encontrada, a DataRowView matriz estará vazia.
Para usar os métodos Find ou FindRows, você deve especificar uma ordem de classificação, definindo ApplyDefaultSort como true ou usando a propriedade Sort. Se nenhuma ordem de classificação for especificada, uma exceção será gerada.
Os métodos Find e FindRows assumem uma matriz de valores como entrada, cujo comprimento corresponde ao número de colunas na ordem de classificação. No caso de uma classificação em uma única coluna, você pode passar um único valor. Para ordens de classificação que contêm várias colunas, você passa uma matriz de objetos. Observe que, para uma classificação em várias colunas, os valores na matriz de objetos devem corresponder à ordem das colunas especificadas na Sort propriedade do DataView.
O exemplo de código a seguir mostra o Find método sendo chamado em relação a uma DataView ordem de classificação de coluna única.
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());
Se sua Sort propriedade especificar várias colunas, você deverá passar uma matriz de objetos com os valores de pesquisa para cada coluna na ordem especificada pela Sort propriedade, como no exemplo de código a seguir.
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());