Compartir a través de


Crear un objeto DataView

Hay dos formas de crear una DataView. Puede utilizar el constructor DataView o puede crear una referencia a la propiedad DefaultView de DataTable. El constructor DataView puede estar vacío o puede aceptar también DataTable como único argumento o DataTable junto con el criterio de filtro o de ordenación, y un filtro de estado de fila. Para más información sobre los argumentos adicionales disponibles para su uso con DataView, consulte Ordenar y filtrar datos.

Como el índice de DataView se compila cuando se crea DataView y cuando se modifica alguna de las propiedades Sort, RowFilter o RowStateFilter, conseguirá un rendimiento óptimo si suministra cualquier criterio inicial de ordenación o filtro como argumentos del constructor al crear DataView. Al crear DataView sin especificar criterios de ordenación o de filtro y establecer posteriormente las propiedades Sort, RowFilter o RowStateFilter hace que el índice se construya dos veces como mínimo: una vez al crear DataView y la otra cuando se modifica cualquiera de las propiedades de ordenación y filtrado.

Tenga en cuenta que si crea DataView con el constructor que no toma ningún argumento, no podrá utilizar DataView hasta que no establezca la propiedad Table.

En el ejemplo de código siguiente se muestra cómo crear una DataView con el constructor DataView. Con la DataTable se suministran un RowFilter, una columna Sort y un DataViewRowState.

Dim custDV As DataView = New DataView(custDS.Tables("Customers"), _  
    "Country = 'USA'", _  
    "ContactName", _  
    DataViewRowState.CurrentRows)  
DataView custDV = new DataView(custDS.Tables["Customers"],
    "Country = 'USA'",
    "ContactName",
    DataViewRowState.CurrentRows);  

En el siguiente ejemplo de código se muestra cómo obtener una referencia a la DataView predeterminada de DataTable mediante la propiedad DefaultView de la tabla.

Dim custDV As DataView = custDS.Tables("Customers").DefaultView  
DataView custDV = custDS.Tables["Customers"].DefaultView;  

Consulte también