Ordenar y filtrar datos

DataView proporciona varias maneras de ordenar y filtrar datos en :DataTable

  • Puede usar la Sort propiedad para especificar pedidos de ordenación de una o varias columnas e incluir los parámetros ASC (ascendente) y DESC (descendente).

  • Puede usar la ApplyDefaultSort propiedad para crear automáticamente un criterio de ordenación, en orden ascendente, en función de la columna o columnas de clave principal de la tabla. ApplyDefaultSort solo se aplica cuando la Sort propiedad es una referencia nula o una cadena vacía y cuando la tabla tiene definida una clave principal.

  • Puede usar la RowFilter propiedad para especificar subconjuntos de filas en función de sus valores de columna. Para obtener más información sobre las expresiones válidas para la RowFilter propiedad , vea la información de referencia de la Expression propiedad de la DataColumn clase .

    Si desea devolver los resultados de una consulta determinada en los datos, en lugar de proporcionar una vista dinámica de un subconjunto de los datos, use los métodos Find o FindRows de DataView para lograr el mejor rendimiento en lugar de establecer la propiedad RowFilter. Al establecer la RowFilter propiedad se vuelve a generar el índice de los datos, se agrega sobrecarga a la aplicación y se reduce el rendimiento. La RowFilter propiedad se usa mejor en una aplicación enlazada a datos donde un control enlazado muestra los resultados filtrados. Los Find métodos y FindRows aprovechan el índice actual sin necesidad de volver a generar el índice. Para obtener más información sobre los Find métodos y FindRows , vea Buscar filas.

  • Puede usar la RowStateFilter propiedad para especificar qué versiones de fila se van a ver. Administra DataView implícitamente qué versión de fila se va a exponer dependiendo de RowState la fila subyacente. Por ejemplo, si el RowStateFilter se establece en DataViewRowState.Deleted, expone la DataView versión de fila de todas las Original filas porque no hay ninguna Deleted versión de fila. Puede determinar qué versión de fila de una fila se expone mediante la RowVersion propiedad de DataRowView.

    En la tabla siguiente se muestran las opciones de DataViewRowState.

    Opciones de DataViewRowState Descripción
    CurrentRows La Current versión de fila de todas las filas Sin cambios, Agregadas y Modified . Este es el valor predeterminado.
    Agregado Versión de la fila Current de todas las filas Added.
    Eliminado Versión de la fila Original de todas las filas Deleted.
    ModifiedCurrent Versión de la fila Current de todas las filas Modified.
    ModifiedOriginal Versión de la fila Original de todas las filas Modified.
    Ninguno No hay filas.
    OriginalRows La versión de fila Original de todas las filas sin cambios, modificadas y Deleted.
    Inalterado Versión de la fila Current de todas las filas Unchanged.

Para obtener más información sobre los estados de fila y las versiones de fila, consulte Estados de fila y Versiones de fila.

En el ejemplo de código siguiente se crea una vista que muestra todos los productos en los que el número de unidades de stock es menor o igual que el nivel de reordenación, ordenado primero por identificador de proveedor y, a continuación, por nombre de producto.

Dim prodView As DataView = New DataView(prodDS.Tables("Products"), _
   "UnitsInStock <= ReorderLevel", _
   "SupplierID, ProductName", _
   DataViewRowState.CurrentRows)
DataView prodView = new DataView(prodDS.Tables["Products"],
   "UnitsInStock <= ReorderLevel",
   "SupplierID, ProductName",
   DataViewRowState.CurrentRows);

Consulte también