DataView Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa una vista databindable, personalizada de para DataTable ordenar, filtrar, buscar, editar y navegar. DataView no almacena datos, sino que representa una vista conectada de su correspondienteDataTable. Los cambios en los DataViewdatos de afectarán a DataTable. Los cambios en los DataTabledatos de afectarán a todos los DataViewasociados.
public ref class DataView : System::ComponentModel::MarshalByValueComponent, System::Collections::IList, System::ComponentModel::IBindingListView, System::ComponentModel::ISupportInitialize, System::ComponentModel::ISupportInitializeNotification, System::ComponentModel::ITypedList
public ref class DataView : System::ComponentModel::MarshalByValueComponent, System::Collections::IList, System::ComponentModel::IBindingList, System::ComponentModel::ISupportInitialize, System::ComponentModel::ITypedList
public ref class DataView : System::ComponentModel::MarshalByValueComponent, System::Collections::IList, System::ComponentModel::IBindingListView, System::ComponentModel::ISupportInitializeNotification, System::ComponentModel::ITypedList
public ref class DataView : System::ComponentModel::MarshalByValueComponent, System::ComponentModel::IBindingListView, System::ComponentModel::ISupportInitializeNotification, System::ComponentModel::ITypedList
public class DataView : System.ComponentModel.MarshalByValueComponent, System.Collections.IList, System.ComponentModel.IBindingListView, System.ComponentModel.ISupportInitialize, System.ComponentModel.ISupportInitializeNotification, System.ComponentModel.ITypedList
public class DataView : System.ComponentModel.MarshalByValueComponent, System.Collections.IList, System.ComponentModel.IBindingList, System.ComponentModel.ISupportInitialize, System.ComponentModel.ITypedList
public class DataView : System.ComponentModel.MarshalByValueComponent, System.Collections.IList, System.ComponentModel.IBindingListView, System.ComponentModel.ISupportInitializeNotification, System.ComponentModel.ITypedList
public class DataView : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IBindingListView, System.ComponentModel.ISupportInitializeNotification, System.ComponentModel.ITypedList
type DataView = class
inherit MarshalByValueComponent
interface ICollection
interface IEnumerable
interface IList
interface IBindingList
interface IBindingListView
interface ISupportInitialize
interface ISupportInitializeNotification
interface ITypedList
type DataView = class
inherit MarshalByValueComponent
interface IBindingList
interface IList
interface ICollection
interface IEnumerable
interface ITypedList
interface ISupportInitialize
type DataView = class
inherit MarshalByValueComponent
interface IBindingListView
interface IBindingList
interface IList
interface ICollection
interface IEnumerable
interface ITypedList
interface ISupportInitializeNotification
interface ISupportInitialize
Public Class DataView
Inherits MarshalByValueComponent
Implements IBindingListView, IList, ISupportInitialize, ISupportInitializeNotification, ITypedList
Public Class DataView
Inherits MarshalByValueComponent
Implements IBindingList, IList, ISupportInitialize, ITypedList
Public Class DataView
Inherits MarshalByValueComponent
Implements IBindingListView, IList, ISupportInitializeNotification, ITypedList
Public Class DataView
Inherits MarshalByValueComponent
Implements IBindingListView, ISupportInitializeNotification, ITypedList
- Herencia
- Implementaciones
Ejemplos
En el ejemplo siguiente se crea un único DataTable con una columna y cinco filas. Se crean dos DataView objetos y RowStateFilter se establece en cada uno para mostrar vistas diferentes de los datos de la tabla. A continuación, se imprimen los valores.
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.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(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 crea un DataView de pedidos en línea ordenados por total debido a una consulta LINQ to DataSet:
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 principal de es permitir el enlace de DataView datos en Formularios Windows Forms y Web Forms.
Además, DataView se puede personalizar para presentar un subconjunto de datos de .DataTable Esta funcionalidad le permite tener dos controles enlazados al mismo DataTable, pero que muestran versiones diferentes de los datos. Por ejemplo, un control podría estar enlazado a un DataView que muestra todas las filas de la tabla y un segundo podría configurarse para mostrar solo las filas que se han eliminado de .DataTable DataTable También tiene una DefaultView propiedad . Esto devuelve el valor predeterminado DataView de la tabla. Por ejemplo, si desea crear una vista personalizada en la tabla, establezca en RowFilter el DataView devuelto por .DefaultView
Para crear una vista filtrada y ordenada de datos, establezca las RowFilter propiedades y Sort . A continuación, use la Item[] propiedad para devolver un solo DataRowView.
También puede agregar y eliminar del conjunto de filas mediante los AddNew métodos y Delete . Cuando se usan esos métodos, la RowStateFilter propiedad puede establecer para especificar que solo las DataViewfilas eliminadas o las filas nuevas se muestren mediante .
Nota
Si no especifica explícitamente criterios de ordenación para DataView, los DataRowView objetos de DataView se ordenan en función del índice de DataView correspondiente DataRow en .DataTable.RowsDataRowCollection
LINQ to DataSet permite a los desarrolladores crear consultas complejas y eficaces a través de mediante DataSet LINQ. Sin embargo, una consulta LINQ to DataSet devuelve una enumeración de DataRow objetos, que no se usa fácilmente en un escenario de enlace. DataView se puede crear a partir de una consulta LINQ to DataSet y toma las características de filtrado y ordenación de esa consulta. LINQ to DataSet amplía la funcionalidad de DataView al proporcionar filtrado y ordenación basados en expresiones LINQ, 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. Consulte Enlace de datos y LINQ to DataSet para obtener más información.
Constructores
| Nombre | Description |
|---|---|
| DataView() |
Inicializa una nueva instancia de la clase DataView. |
| DataView(DataTable, String, String, DataViewRowState) |
Inicializa una nueva instancia de la DataView clase con el especificado DataTable, RowFilter, Sorty DataViewRowState. |
| DataView(DataTable) |
Inicializa una nueva instancia de la DataView clase con el especificado DataTable. |
Propiedades
| Nombre | Description |
|---|---|
| AllowDelete |
Obtiene o establece un valor que indica si se permiten eliminaciones. |
| AllowEdit |
Obtiene o establece un valor que indica si se permiten modificaciones. |
| AllowNew |
Obtiene o establece un valor que indica si se pueden agregar las nuevas filas mediante el AddNew() método . |
| ApplyDefaultSort |
Obtiene o establece un valor que indica si se va a usar la ordenación predeterminada. La ordenación predeterminada es (ascendente) por todas las claves principales, según lo especificado por PrimaryKey. |
| Container |
Obtiene el contenedor del componente. (Heredado de MarshalByValueComponent) |
| Count |
Obtiene el número de registros de DataView después RowFilter y RowStateFilter se han aplicado. |
| DataViewManager |
Obtiene el DataViewManager asociado a esta vista. |
| DesignMode |
Obtiene un valor que indica si el componente está actualmente en modo de diseño. (Heredado de MarshalByValueComponent) |
| Events |
Obtiene la lista de controladores de eventos que están asociados a este componente. (Heredado de MarshalByValueComponent) |
| IsInitialized |
Obtiene un valor que indica si el componente se inicializa. |
| IsOpen |
Obtiene un valor que indica si el origen de datos está abierto actualmente y proyecta vistas de datos en .DataTable |
| Item[Int32] |
Obtiene una fila de datos de una tabla especificada. |
| RowFilter |
Obtiene o establece la expresión usada para filtrar qué filas se ven en .DataView |
| RowStateFilter |
Obtiene o establece el filtro de estado de fila usado en .DataView |
| Site |
Obtiene o establece el sitio del componente. (Heredado de MarshalByValueComponent) |
| Sort |
Obtiene o establece la columna o columnas de ordenación y el criterio de ordenación de DataView. |
| Table |
Obtiene o establece el origen DataTable. |
Métodos
| Nombre | Description |
|---|---|
| AddNew() |
Agrega una nueva fila a .DataView |
| BeginInit() |
Inicia la inicialización de un DataView objeto que se usa en un formulario o que usa otro componente. La inicialización se produce en tiempo de ejecución. |
| Close() |
Cierra .DataView |
| ColumnCollectionChanged(Object, CollectionChangeEventArgs) |
Se produce después de que se DataColumnCollection haya cambiado correctamente. |
| CopyTo(Array, Int32) |
Copia elementos en una matriz. Solo para interfaces de formularios Web Forms. |
| Delete(Int32) |
Elimina una fila en el índice especificado. |
| Dispose() |
Libera todos los recursos usados por .MarshalByValueComponent (Heredado de MarshalByValueComponent) |
| Dispose(Boolean) |
Elimina los recursos (distintos de la memoria) utilizados por el DataView objeto . |
| EndInit() |
Finaliza la inicialización de un DataView objeto que se usa en un formulario o que usa otro componente. La inicialización se produce en tiempo de ejecución. |
| Equals(DataView) |
Determina si las instancias especificadas DataView se consideran iguales. |
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| Find(Object) |
Busca una fila en por DataView el valor de clave de ordenación especificado. |
| Find(Object[]) |
Busca una fila en por DataView los valores de clave de ordenación especificados. |
| FindRows(Object) |
Devuelve una matriz de objetos cuyas columnas coinciden con el valor de clave de DataRowView ordenación especificado. |
| FindRows(Object[]) |
Devuelve una matriz de objetos cuyas columnas coinciden con el valor de clave de DataRowView ordenación especificado. |
| GetEnumerator() |
Obtiene un enumerador para este DataViewobjeto . |
| GetHashCode() |
Actúa como función hash predeterminada. (Heredado de Object) |
| GetService(Type) |
Obtiene el implementador de .IServiceProvider (Heredado de MarshalByValueComponent) |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| IndexListChanged(Object, ListChangedEventArgs) |
Se produce después de que se DataView haya cambiado correctamente. |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| OnListChanged(ListChangedEventArgs) |
Genera el evento ListChanged. |
| Open() |
Abre un DataView. |
| Reset() |
Reservado solo para uso interno. |
| ToString() |
Devuelve un String objeto que contiene el nombre de Component, si existe. Este método no se debe invalidar. (Heredado de MarshalByValueComponent) |
| ToTable() |
Crea y devuelve un nuevo DataTable basado en filas de un existente DataView. |
| ToTable(Boolean, String[]) |
Crea y devuelve un nuevo DataTable basado en filas de un existente DataView. |
| ToTable(String, Boolean, String[]) |
Crea y devuelve un nuevo DataTable basado en filas de un existente DataView. |
| ToTable(String) |
Crea y devuelve un nuevo DataTable basado en filas de un existente DataView. |
| UpdateIndex() |
Reservado solo para uso interno. |
| UpdateIndex(Boolean) |
Reservado solo para uso interno. |
Eventos
| Nombre | Description |
|---|---|
| Disposed |
Agrega un controlador de eventos para escuchar el Disposed evento en el componente. (Heredado de MarshalByValueComponent) |
| Initialized |
Se produce cuando se completa la inicialización de .DataView |
| ListChanged |
Se produce cuando cambia la lista administrada por .DataView |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| IBindingList.AddIndex(PropertyDescriptor) |
Para obtener una descripción de este miembro, vea AddIndex(PropertyDescriptor). |
| IBindingList.AddNew() |
Para obtener una descripción de este miembro, vea AddNew(). |
| IBindingList.AllowEdit |
Para obtener una descripción de este miembro, vea AllowEdit. |
| IBindingList.AllowNew |
Para obtener una descripción de este miembro, vea AllowNew. |
| IBindingList.AllowRemove |
Para obtener una descripción de este miembro, vea AllowRemove. |
| IBindingList.ApplySort(PropertyDescriptor, ListSortDirection) |
Para obtener una descripción de este miembro, vea ApplySort(PropertyDescriptor, ListSortDirection). |
| IBindingList.Find(PropertyDescriptor, Object) |
Para obtener una descripción de este miembro, vea Find(PropertyDescriptor, Object). |
| IBindingList.IsSorted |
Para obtener una descripción de este miembro, vea IsSorted. |
| IBindingList.RemoveIndex(PropertyDescriptor) |
Para obtener una descripción de este miembro, vea RemoveIndex(PropertyDescriptor). |
| IBindingList.RemoveSort() |
Para obtener una descripción de este miembro, vea RemoveSort(). |
| IBindingList.SortDirection |
Para obtener una descripción de este miembro, vea SortDirection. |
| IBindingList.SortProperty |
Para obtener una descripción de este miembro, vea SortProperty. |
| IBindingList.SupportsChangeNotification |
Para obtener una descripción de este miembro, vea SupportsChangeNotification. |
| IBindingList.SupportsSearching |
Para obtener una descripción de este miembro, vea SupportsSearching. |
| IBindingList.SupportsSorting |
Para obtener una descripción de este miembro, vea SupportsSorting. |
| IBindingListView.ApplySort(ListSortDescriptionCollection) |
Para obtener una descripción de este miembro, vea ApplySort(ListSortDescriptionCollection). |
| IBindingListView.Filter |
Para obtener una descripción de este miembro, vea Filter. |
| IBindingListView.RemoveFilter() |
Para obtener una descripción de este miembro, vea RemoveFilter(). |
| IBindingListView.SortDescriptions |
Para obtener una descripción de este miembro, vea SortDescriptions. |
| IBindingListView.SupportsAdvancedSorting |
Para obtener una descripción de este miembro, vea SupportsAdvancedSorting. |
| IBindingListView.SupportsFiltering |
Para obtener una descripción de este miembro, vea SupportsFiltering. |
| ICollection.IsSynchronized |
Para obtener una descripción de este miembro, vea IsSynchronized. |
| ICollection.SyncRoot |
Para obtener una descripción de este miembro, vea SyncRoot. |
| IList.Add(Object) |
Para obtener una descripción de este miembro, vea Add(Object). |
| IList.Clear() |
Para obtener una descripción de este miembro, vea Clear(). |
| IList.Contains(Object) |
Para obtener una descripción de este miembro, vea Contains(Object). |
| IList.IndexOf(Object) |
Para obtener una descripción de este miembro, vea IndexOf(Object). |
| IList.Insert(Int32, Object) |
Para obtener una descripción de este miembro, vea Insert(Int32, Object). |
| IList.IsFixedSize |
Para obtener una descripción de este miembro, vea IsFixedSize. |
| IList.IsReadOnly |
Para obtener una descripción de este miembro, vea IsReadOnly. |
| IList.Item[Int32] |
Para obtener una descripción de este miembro, vea Item[Int32]. |
| IList.Remove(Object) |
Para obtener una descripción de este miembro, vea Remove(Object). |
| IList.RemoveAt(Int32) |
Para obtener una descripción de este miembro, vea RemoveAt(Int32). |
| ITypedList.GetItemProperties(PropertyDescriptor[]) |
Para obtener una descripción de este miembro, vea GetItemProperties(PropertyDescriptor[]). |
| ITypedList.GetListName(PropertyDescriptor[]) |
Para obtener una descripción de este miembro, vea GetListName(PropertyDescriptor[]). |
Métodos de extensión
| Nombre | Description |
|---|---|
| AsParallel(IEnumerable) |
Habilita la paralelización de una consulta. |
| AsQueryable(IEnumerable) |
Convierte un IEnumerable en un IQueryable. |
| Cast<TResult>(IEnumerable) |
Convierte los elementos de un IEnumerable al tipo especificado. |
| OfType<TResult>(IEnumerable) |
Filtra los elementos de un IEnumerable en función de un tipo especificado. |
Se aplica a
Seguridad para subprocesos
Este tipo es seguro para las operaciones de lectura multiproceso. Debe sincronizar las operaciones de escritura.