DataView Clase

Definición

Representa una vista personalizada enlazables de datos de un objeto DataTable para ordenación, filtrado, búsqueda, edición y navegación.Represents a databindable, customized view of a DataTable for sorting, filtering, searching, editing, and navigation. DataView no almacena datos, pero en su lugar representa una vista conectada de su DataTable correspondiente.The DataView does not store data, but instead represents a connected view of its corresponding DataTable. Los cambios en los datos de DataView afectan a DataTable.Changes to the DataView's data will affect the DataTable. Los cambios en los datos de DataTable afectan a todos los elementos DataView asociados a él.Changes to the DataTable's data will affect all DataViews associated with it.

public ref class DataView : System::ComponentModel::MarshalByValueComponent, System::Collections::IList, System::ComponentModel::IBindingListView, System::ComponentModel::ISupportInitializeNotification, System::ComponentModel::ITypedList
public class DataView : System.ComponentModel.MarshalByValueComponent, System.Collections.IList, System.ComponentModel.IBindingListView, System.ComponentModel.ISupportInitializeNotification, System.ComponentModel.ITypedList
type DataView = class
    inherit MarshalByValueComponent
    interface IBindingListView
    interface ITypedList
    interface ISupportInitializeNotification
    interface IBindingList
    interface IList
    interface ICollection
    interface IEnumerable
    interface ISupportInitialize
Public Class DataView
Inherits MarshalByValueComponent
Implements IBindingListView, IList, ISupportInitializeNotification, ITypedList
Herencia
Implementaciones

Ejemplos

En el ejemplo siguiente se crea DataTable un único con una columna y cinco filas.The following example creates a single DataTable with one column and five rows. Se DataView crean dos objetos y el RowStateFilter se establece en cada para mostrar vistas diferentes de los datos de la tabla.Two DataView objects are created and the RowStateFilter is set on each to show different views of the table data. A continuación, se imprimen los valores.The values are then printed.

using System;
using System.Xml;
using System.Data;
using System.Data.Common;
using System.Windows.Forms;

public class Form1: Form
{
    protected DataSet DataSet1;
    protected DataGrid dataGrid1;



    private void DemonstrateDataView()
    {
        // Create one DataTable with one column.
        DataTable table = new DataTable("table");
        DataColumn colItem = new DataColumn("item",
            Type.GetType("System.String"));
        table.Columns.Add(colItem);

        // Add five items.
        DataRow NewRow;
        for(int i = 0; i <5; i++)
        {
            NewRow = table.NewRow();
            NewRow["item"] = "Item " + i;
            table.Rows.Add(NewRow);
        }
        // Change the values in the table.
        table.AcceptChanges();
        table.Rows[0]["item"]="cat";
        table.Rows[1]["item"] = "dog";
 
        // Create two DataView objects with the same table.
        DataView firstView = new DataView(table);
        DataView secondView = new DataView(table);
 
        // Print current table values.
        PrintTableOrView(table,"Current Values in Table");
    
        // Set first DataView to show only modified 
        // versions of original rows.
        firstView.RowStateFilter=DataViewRowState.ModifiedOriginal;

        // Print values.   
        PrintTableOrView(firstView,"First DataView: ModifiedOriginal");

        // Add one New row to the second view.
        DataRowView rowView;
        rowView=secondView.AddNew();
        rowView["item"] = "fish";

        // Set second DataView to show modified versions of 
        // current rows, or New rows.
        secondView.RowStateFilter=DataViewRowState.ModifiedCurrent 
            | DataViewRowState.Added;
        // Print modified and Added rows.
        PrintTableOrView(secondView, 
            "Second DataView: ModifiedCurrent | Added");
    }
 
    private void PrintTableOrView(DataTable table, string label)
    {
        // This function prints values in the table or DataView.
        Console.WriteLine("\n" + label);
        for(int i = 0; i<table.Rows.Count;i++)
        {
            Console.WriteLine("\table" + table.Rows[i]["item"]);
        }
        Console.WriteLine();
    }
 
    private void PrintTableOrView(DataView view, string label)
    {
 
        // This overload prints values in the table or DataView.
        Console.WriteLine("\n" + label);
        for(int i = 0; i<view.Count;i++)
        {
            Console.WriteLine("\table" + view[i]["item"]);
        }
        Console.WriteLine();
    }
}
Private Sub DemonstrateDataView()
    ' Create one DataTable with one column.
    Dim table As New DataTable("table")
    Dim colItem As New DataColumn("item", _
        Type.GetType("System.String"))
    table.Columns.Add(colItem)

    ' Add five items.
    Dim NewRow As DataRow
    Dim i As Integer
    For i = 0 To 4
    
    NewRow = table.NewRow()
    NewRow("item") = "Item " & i
    table.Rows.Add(NewRow)
    Next
    table.AcceptChanges()

    ' Create two DataView objects with the same table.
    Dim firstView As New DataView(table)
    Dim secondView As New DataView(table)
    
    ' Change the values in the table.
    table.Rows(0)("item") = "cat"
    table.Rows(1)("item") = "dog"
    
    ' Print current table values.
    PrintTableOrView(table, "Current Values in Table")
        
    ' Set first DataView to show only modified versions of original rows.
    firstView.RowStateFilter = DataViewRowState.ModifiedOriginal

    ' Print values.    
    PrintTableOrView(firstView, "First DataView: ModifiedOriginal")

    ' Add one New row to the second view.
    Dim rowView As DataRowView
    rowView = secondView.AddNew()
    rowView("item") = "fish"
    ' Set second DataView to show modified versions of 
    ' current rows, or New rows.
    secondView.RowStateFilter = DataViewRowState.ModifiedCurrent _
        Or DataViewRowState.Added
    ' Print modified and Added rows.
    PrintTableOrView(secondView, _
        "Second DataView: ModifiedCurrent or Added")
End Sub
    
Overloads Private Sub PrintTableOrView( _
    ByVal view As DataView, ByVal label As String)
    Console.WriteLine(label)
    Dim i As Integer
    For i = 0 To view.count - 1
    
    Console.WriteLine(view(i)("item"))
    Next
    Console.WriteLine()
End Sub
    
Overloads Private Sub PrintTableOrView( _
    ByVal table As DataTable, ByVal label As String)
    Console.WriteLine(label)
    Dim i As Integer
    For i = 0 To table.Rows.Count - 1
    Console.WriteLine(table.Rows(i)("item"))
    Next
    Console.WriteLine()
End Sub

En el ejemplo siguiente se DataView crea un de pedidos en línea ordenados por LINQ to DataSetLINQ to DataSet total debido a una consulta:The following example creates a DataView of online orders ordered by total due from a LINQ to DataSetLINQ to DataSet query:

DataTable orders = dataSet.Tables["SalesOrderHeader"];

EnumerableRowCollection<DataRow> query =
    from order in orders.AsEnumerable()
    where order.Field<bool>("OnlineOrderFlag") == true
    orderby order.Field<decimal>("TotalDue")
    select order;

DataView view = query.AsDataView();

bindingSource1.DataSource = view;
Dim orders As DataTable = dataSet.Tables("SalesOrderHeader")

Dim query = _
    From order In orders.AsEnumerable() _
    Where order.Field(Of Boolean)("OnlineOrderFlag") = True _
    Order By order.Field(Of Decimal)("TotalDue") _
    Select order

Dim view As DataView = query.AsDataView()
bindingSource1.DataSource = view

Comentarios

Una función importante de es DataView permitir el enlace de datos tanto en Windows Forms como en formularios Web Forms.A major function of the DataView is to allow for data binding on both Windows Forms and Web Forms.

Además, DataView se puede personalizar para presentar un subconjunto de datos DataTablede.Additionally, a DataView can be customized to present a subset of data from the DataTable. Esta funcionalidad permite tener dos controles enlazados al mismo DataTable, pero que muestran versiones diferentes de los datos.This capability lets you have two controls bound to the same DataTable, but that show different versions of the data. Por ejemplo, un control podría estar enlazado a DataView un que muestre todas las filas de la tabla y un segundo podría configurarse para mostrar solo las filas que se han eliminado DataTablede.For example, one control might be bound to a DataView that shows all the rows in the table, and a second might be configured to display only the rows that have been deleted from the DataTable. También tiene una DefaultViewpropiedad. DataTableThe DataTable also has a DefaultView property. Esto devuelve el valor DataView predeterminado de la tabla.This returns the default DataView for the table. Por ejemplo, si desea crear una vista personalizada en la tabla, establezca RowFilter en el DataView devuelto por DefaultView.For example, if you want to create a custom view on the table, set the RowFilter on the DataView returned by the DefaultView.

Para crear una vista filtrada y ordenada de los datos, establezca las RowFilter propiedades Sort y.To create a filtered and sorted view of data, set the RowFilter and Sort properties. A continuación, utilice Item[Int32] la propiedad para devolver un DataRowViewúnico.Then, use the Item[Int32] property to return a single DataRowView.

También puede Agregar y eliminar del conjunto de filas mediante los AddNew métodos y. DeleteYou can also add and delete from the set of rows using the AddNew and Delete methods. Cuando se usan estos métodos, la RowStateFilter propiedad puede establecer para especificar que solo se muestren DataViewlas filas eliminadas o las filas nuevas.When you use those methods, the RowStateFilter property can set to specify that only deleted rows or new rows be displayed by the DataView.

Nota

Si no especifica explícitamente criterios de ordenación DataViewpara, DataRowView los objetos DataView de se ordenan en DataTable.Rows función DataRowCollectiondel índice de DataView correspondiente DataRow en.If you do not explicitly specify sort criteria for DataView, the DataRowView objects in DataView are sorted based on the index of DataView's corresponding DataRow in the DataTable.Rows DataRowCollection.

LINQ to DataSetLINQ to DataSetpermite a los desarrolladores crear consultas complejas y eficaces sobre DataSet un LINQLINQmediante.allows developers to create complex, powerful queries over a DataSet by using LINQLINQ. No LINQ to DataSetLINQ to DataSet obstante, una consulta devuelve DataRow una enumeración de objetos, que no se usa fácilmente en un escenario de enlace.A LINQ to DataSetLINQ to DataSet query returns an enumeration of DataRow objects, however, which is not easily used in a binding scenario. DataViewse puede crear a partir LINQ to DataSetLINQ to DataSet de una consulta y toma las características de filtrado y ordenación de esa consulta.DataView can be created from a LINQ to DataSetLINQ to DataSet query and takes on the filtering and sorting characteristics of that query. LINQ to DataSetLINQ to DataSetextiende la funcionalidad de DataView LINQLINQ proporcionando filtrado y ordenación basados en expresiones, lo que permite operaciones de filtrado y ordenación mucho más complejas y eficaces que el filtrado y la ordenación basados en cadenas.extends the functionality of the DataView by providing LINQLINQ expression-based filtering and sorting, which allows for much more complex and powerful filtering and sorting operations than string-based filtering and sorting. Consulte enlace de datos y LINQ to DataSet para obtener más información.See Data Binding and LINQ to DataSet for more information.

Constructores

DataView()

Inicializa una nueva instancia de la clase DataView.Initializes a new instance of the DataView class.

DataView(DataTable)

Inicializa una nueva instancia de la clase DataView con el objeto DataTable especificado.Initializes a new instance of the DataView class with the specified DataTable.

DataView(DataTable, String, String, DataViewRowState)

Inicializa una nueva instancia de la clase DataView con los elementos DataTable, RowFilter, Sort y DataViewRowState especificados.Initializes a new instance of the DataView class with the specified DataTable, RowFilter, Sort, and DataViewRowState.

Propiedades

AllowDelete

Establece u obtiene un valor que indica si se permiten las eliminaciones.Sets or gets a value that indicates whether deletes are allowed.

AllowEdit

Obtiene o establece un valor que indica si se permiten las ediciones.Gets or sets a value that indicates whether edits are allowed.

AllowNew

Obtiene o establece un valor que indica si las nuevas filas se pueden agregar con el método AddNew().Gets or sets a value that indicates whether the new rows can be added by using the AddNew() method.

ApplyDefaultSort

Obtiene o establece un valor que indica si se usará el orden predeterminado.Gets or sets a value that indicates whether to use the default sort. El orden predeterminado (ascendente) por todas las claves principales según se especifica por PrimaryKey.The default sort is (ascending) by all primary keys as specified by PrimaryKey.

Container

Obtiene el contenedor del componente.Gets the container for the component.

(Heredado de MarshalByValueComponent)
Count

Obtiene el número de registros de la DataView después de aplicarse RowFilter y RowStateFilter.Gets the number of records in the DataView after RowFilter and RowStateFilter have been applied.

DataViewManager

Obtiene el objeto DataViewManager asociado a esta vista.Gets the DataViewManager associated with this view.

DesignMode

Obtiene un valor que indica si el componente está actualmente en modo de diseño.Gets a value indicating whether the component is currently in design mode.

(Heredado de MarshalByValueComponent)
Events

Obtiene la lista de controladores de eventos asociados a este componente.Gets the list of event handlers that are attached to this component.

(Heredado de MarshalByValueComponent)
IsInitialized

Obtiene un valor que indica si se ha inicializado el componente.Gets a value that indicates whether the component is initialized.

IsOpen

Obtiene un valor que indica si el origen de datos está abierto actualmente y proyecta vistas de datos en la DataTable.Gets a value that indicates whether the data source is currently open and projecting views of data on the DataTable.

Item[Int32]

Obtiene una fila de datos de una tabla especificada.Gets a row of data from a specified table.

RowFilter

Obtiene o establece la expresión usada para filtrar las filas que se deben mostrar en DataView.Gets or sets the expression used to filter which rows are viewed in the DataView.

RowStateFilter

Obtiene o establece el filtro de estado de la fila que se usa en la DataView.Gets or sets the row state filter used in the DataView.

Site

Obtiene o establece el sitio del componente.Gets or sets the site of the component.

(Heredado de MarshalByValueComponent)
Sort

Obtiene o establece el criterio de ordenación de columnas y el criterio de ordenación para el DataView.Gets or sets the sort column or columns, and sort order for the DataView.

Table

Obtiene o establece el DataTable de origen.Gets or sets the source DataTable.

Métodos

AddNew()

Agrega una nueva fila a DataView.Adds a new row to the DataView.

BeginInit()

Activa la inicialización de un objeto DataView que se emplea en un formulario o que usa otro componente.Starts the initialization of a DataView that is used on a form or used by another component. La inicialización se produce en tiempo de ejecución.The initialization occurs at runtime.

Close()

Cierra el objeto DataView.Closes the DataView.

ColumnCollectionChanged(Object, CollectionChangeEventArgs)

Ocurre después de modificar correctamente una DataColumnCollection.Occurs after a DataColumnCollection has been changed successfully.

CopyTo(Array, Int32)

Copia los elementos en una matriz.Copies items into an array. Solo para interfaces de Web Forms.Only for Web Forms Interfaces.

Delete(Int32)

Elimina una fila en el índice especificado.Deletes a row at the specified index.

Dispose()

Libera todos los recursos que usa MarshalByValueComponent.Releases all resources used by the MarshalByValueComponent.

(Heredado de MarshalByValueComponent)
Dispose(Boolean)

Se deshace de los recursos (distintos de la memoria) usados por el objeto DataView.Disposes of the resources (other than memory) used by the DataView object.

EndInit()

Finaliza la inicialización de un objeto DataView que se emplea en un formulario o que utiliza otro componente.Ends the initialization of a DataView that is used on a form or used by another component. La inicialización se produce en tiempo de ejecución.The initialization occurs at runtime.

Equals(DataView)

Determina si las instancias de DataView especificadas se consideran iguales.Determines whether the specified DataView instances are considered equal.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
Find(Object)

Encuentra una fila en la DataView por el valor de clave de ordenación especificado.Finds a row in the DataView by the specified sort key value.

Find(Object[])

Encuentra una fila en la DataView por los valores de clave de ordenación especificados.Finds a row in the DataView by the specified sort key values.

FindRows(Object)

Devuelve una matriz de DataRowView objetos cuyas columnas coinciden con el valor de criterio de ordenación especificado.Returns an array of DataRowView objects whose columns match the specified sort key value.

FindRows(Object[])

Devuelve una matriz de DataRowView objetos cuyas columnas coinciden con el valor de criterio de ordenación especificado.Returns an array of DataRowView objects whose columns match the specified sort key value.

GetEnumerator()

Obtiene un enumerador para este elemento DataView.Gets an enumerator for this DataView.

GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetService(Type)

Obtiene el implementador de IServiceProvider.Gets the implementer of the IServiceProvider.

(Heredado de MarshalByValueComponent)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
IndexListChanged(Object, ListChangedEventArgs)

Ocurre después de modificar correctamente una DataView.Occurs after a DataView has been changed successfully.

MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
OnListChanged(ListChangedEventArgs)

Genera el evento ListChanged.Raises the ListChanged event.

Open()

Abre un DataView.Opens a DataView.

Reset()

Reservado para uso interno.Reserved for internal use only.

ToString()

Devuelve una String que contiene el nombre del Component, si existe.Returns a String containing the name of the Component, if any. Este método no se debe invalidar.This method should not be overridden.

(Heredado de MarshalByValueComponent)
ToTable()

Crea y devuelve una nueva DataTable basándose en las filas de una DataView existente.Creates and returns a new DataTable based on rows in an existing DataView.

ToTable(Boolean, String[])

Crea y devuelve una nueva DataTable basándose en las filas de una DataView existente.Creates and returns a new DataTable based on rows in an existing DataView.

ToTable(String)

Crea y devuelve una nueva DataTable basándose en las filas de una DataView existente.Creates and returns a new DataTable based on rows in an existing DataView.

ToTable(String, Boolean, String[])

Crea y devuelve una nueva DataTable basándose en las filas de una DataView existente.Creates and returns a new DataTable based on rows in an existing DataView.

UpdateIndex()

Reservado para uso interno.Reserved for internal use only.

UpdateIndex(Boolean)

Reservado para uso interno.Reserved for internal use only.

Eventos

Disposed

Agrega un controlador de eventos para escuchar el evento Disposed en el componente.Adds an event handler to listen to the Disposed event on the component.

(Heredado de MarshalByValueComponent)
Initialized

Se produce cuando se completa la inicialización de DataView.Occurs when initialization of the DataView is completed.

ListChanged

Se produce cuando la lista administrada por el DataView cambia.Occurs when the list managed by the DataView changes.

Implementaciones de interfaz explícitas

IBindingList.AddIndex(PropertyDescriptor)

Para una descripción de este miembro, vea AddIndex(PropertyDescriptor).For a description of this member, see AddIndex(PropertyDescriptor).

IBindingList.AddNew()

Para una descripción de este miembro, vea AddNew().For a description of this member, see AddNew().

IBindingList.AllowEdit

Para una descripción de este miembro, vea AllowEdit.For a description of this member, see AllowEdit.

IBindingList.AllowNew

Para una descripción de este miembro, vea AllowNew.For a description of this member, see AllowNew.

IBindingList.AllowRemove

Para una descripción de este miembro, vea AllowRemove.For a description of this member, see AllowRemove.

IBindingList.ApplySort(PropertyDescriptor, ListSortDirection)

Para obtener una descripción de este miembro, vea ApplySort(PropertyDescriptor, ListSortDirection).For a description of this member, see ApplySort(PropertyDescriptor, ListSortDirection).

IBindingList.Find(PropertyDescriptor, Object)

Para obtener una descripción de este miembro, vea Find(PropertyDescriptor, Object).For a description of this member, see Find(PropertyDescriptor, Object).

IBindingList.IsSorted

Para una descripción de este miembro, vea IsSorted.For a description of this member, see IsSorted.

IBindingList.RemoveIndex(PropertyDescriptor)

Para obtener una descripción de este miembro, vea RemoveIndex(PropertyDescriptor).For a description of this member, see RemoveIndex(PropertyDescriptor).

IBindingList.RemoveSort()

Para obtener una descripción de este miembro, vea RemoveSort().For a description of this member, see RemoveSort().

IBindingList.SortDirection

Para una descripción de este miembro, vea SortDirection.For a description of this member, see SortDirection.

IBindingList.SortProperty

Para obtener una descripción de este miembro, vea SortProperty.For a description of this member, see SortProperty.

IBindingList.SupportsChangeNotification

Para obtener una descripción de este miembro, vea SupportsChangeNotification.For a description of this member, see SupportsChangeNotification.

IBindingList.SupportsSearching

Para obtener una descripción de este miembro, vea SupportsSearching.For a description of this member, see SupportsSearching.

IBindingList.SupportsSorting

Para obtener una descripción de este miembro, vea SupportsSorting.For a description of this member, see SupportsSorting.

IBindingListView.ApplySort(ListSortDescriptionCollection)

Para una descripción de este miembro, vea ApplySort(ListSortDescriptionCollection).For a description of this member, see ApplySort(ListSortDescriptionCollection).

IBindingListView.Filter

Para una descripción de este miembro, vea Filter.For a description of this member, see Filter.

IBindingListView.RemoveFilter()

Para una descripción de este miembro, vea RemoveFilter().For a description of this member, see RemoveFilter().

IBindingListView.SortDescriptions

Para una descripción de este miembro, vea SortDescriptions.For a description of this member, see SortDescriptions.

IBindingListView.SupportsAdvancedSorting

Para una descripción de este miembro, vea SupportsAdvancedSorting.For a description of this member, see SupportsAdvancedSorting.

IBindingListView.SupportsFiltering

Para una descripción de este miembro, vea SupportsFiltering.For a description of this member, see SupportsFiltering.

ICollection.IsSynchronized

Para obtener una descripción de este miembro, vea IsSynchronized.For a description of this member, see IsSynchronized.

ICollection.SyncRoot

Para obtener una descripción de este miembro, vea SyncRoot.For a description of this member, see SyncRoot.

IList.Add(Object)

Para una descripción de este miembro, vea Add(Object).For a description of this member, see Add(Object).

IList.Clear()

Para obtener una descripción de este miembro, vea Clear().For a description of this member, see Clear().

IList.Contains(Object)

Para obtener una descripción de este miembro, vea Contains(Object).For a description of this member, see Contains(Object).

IList.IndexOf(Object)

Para obtener una descripción de este miembro, vea IndexOf(Object).For a description of this member, see IndexOf(Object).

IList.Insert(Int32, Object)

Para una descripción de este miembro, vea Insert(Int32, Object).For a description of this member, see Insert(Int32, Object).

IList.IsFixedSize

Para una descripción de este miembro, vea IsFixedSize.For a description of this member, see IsFixedSize.

IList.IsReadOnly

Para una descripción de este miembro, vea IsReadOnly.For a description of this member, see IsReadOnly.

IList.Item[Int32]

Para obtener una descripción de este miembro, vea Item[Int32].For a description of this member, see Item[Int32].

IList.Remove(Object)

Para una descripción de este miembro, vea Remove(Object).For a description of this member, see Remove(Object).

IList.RemoveAt(Int32)

Para una descripción de este miembro, vea RemoveAt(Int32).For a description of this member, see RemoveAt(Int32).

ITypedList.GetItemProperties(PropertyDescriptor[])

Para una descripción de este miembro, vea GetItemProperties(PropertyDescriptor[]).For a description of this member, see GetItemProperties(PropertyDescriptor[]).

ITypedList.GetListName(PropertyDescriptor[])

Para una descripción de este miembro, vea GetListName(PropertyDescriptor[]).For a description of this member, see GetListName(PropertyDescriptor[]).

Métodos de extensión

Cast<TResult>(IEnumerable)

Convierte los elementos de IEnumerable en el tipo especificado.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtra los elementos de IEnumerable en función de un tipo especificado.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Habilita la paralelización de una consulta.Enables parallelization of a query.

AsQueryable(IEnumerable)

Convierte una interfaz IEnumerable en IQueryable.Converts an IEnumerable to an IQueryable.

Se aplica a

Seguridad para subprocesos

Este tipo es seguro para las operaciones de lectura multiproceso.This type is safe for multithreaded read operations. Debe sincronizar cualquier operación de escritura.You must synchronize any write operations.

Consulte también: