Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Puede buscar filas según los valores de su clave de ordenación utilizando los métodos Find y FindRows de DataView. La distinción entre mayúsculas y minúsculas de los valores de búsqueda en los métodos Find y FindRows viene determinada por la propiedad CaseSensitive del DataTable subyacente. Los valores de búsqueda deben coincidir con los valores de clave de ordenación existentes en su totalidad para devolver un resultado.
El método Find devuelve un entero con el índice de DataRowView que coincida con los criterios de búsqueda. Si más de una fila coincide con los criterios de búsqueda, solo se devuelve el índice de la primera coincidencia DataRowView . Si no se encuentra ninguna coincidencia, Find devuelve -1.
Para devolver resultados de búsqueda que coincidan con varias filas, use el FindRows método .
FindRows funciona igual que el Find método , salvo que devuelve una DataRowView matriz que hace referencia a todas las filas coincidentes de DataView. Si no se encuentra ninguna coincidencia, la DataRowView matriz estará vacía.
Para usar los métodos Find o FindRows, debe especificar un criterio de ordenación estableciendo ApplyDefaultSort a true o mediante la propiedad Sort. Si no se especifica ningún criterio de ordenación, se produce una excepción.
Los Find métodos y FindRows toman una matriz de valores como entrada cuya longitud coincide con el número de columnas en el criterio de ordenación. En el caso de una ordenación por una única columna, puede pasar un único valor. Para las órdenes de ordenación que contienen varias columnas, se pasa una matriz de objetos. Tenga en cuenta que, para una ordenación en varias columnas, los valores de la matriz de objetos deben coincidir con el orden de las columnas especificadas en la Sort propiedad de DataView.
En el ejemplo de código siguiente se muestra el método Find llamado en un objeto DataView con orden de una sola columna.
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());
Si la Sort propiedad especifica varias columnas, debe pasar una matriz de objetos con los valores de búsqueda de cada columna en el orden especificado por la Sort propiedad , como en el ejemplo de código siguiente.
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());