DataView Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa uma exibição personalizada e vinculável de um DataTable para classificação, filtragem, pesquisa, edição e navegação. O DataView não armazena dados, mas representa uma exibição conectada de seu DataTablecorrespondente. As alterações nos dados do DataViewafetarão o DataTable. As alterações nos dados do DataTableafetarão todos os DataViewassociados a ele.
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
- Herança
- Implementações
Exemplos
O exemplo a seguir cria um único DataTable com uma coluna e cinco linhas. Dois objetos DataView são criados e o RowStateFilter é definido em cada um para mostrar exibições diferentes dos dados da tabela. Em seguida, os valores são impressos.
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
O exemplo a seguir cria uma DataView de pedidos online ordenados pelo total devido a uma 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
Comentários
Uma das principais funções do DataView é permitir a associação de dados nos Windows Forms e nos Web Forms.
Além disso, um DataView pode ser personalizado para apresentar um subconjunto de dados do DataTable. Essa funcionalidade permite que você tenha dois controles associados ao mesmo DataTable, mas que mostram versões diferentes dos dados. Por exemplo, um controle pode estar associado a um DataView que mostra todas as linhas da tabela e um segundo pode ser configurado para exibir apenas as linhas que foram excluídas do DataTable. O DataTable também tem uma propriedade DefaultView. Isso retorna o DataView padrão para a tabela. Por exemplo, se você quiser criar uma exibição personalizada na tabela, defina a RowFilter na DataView retornada pelo DefaultView.
Para criar uma exibição filtrada e classificada de dados, defina as propriedades RowFilter e Sort. Em seguida, use a propriedade Item[] para retornar um único DataRowView.
Você também pode adicionar e excluir do conjunto de linhas usando os métodos AddNew e Delete. Quando você usa esses métodos, a propriedade RowStateFilter pode ser definida para especificar que apenas linhas excluídas ou novas linhas sejam exibidas pelo DataView.
Nota
Se você não especificar explicitamente os critérios de classificação para DataView
, os objetos DataRowView
no DataView
serão classificados com base no índice do DataRow
correspondente do DataView no DataTable.Rows
DataRowCollection
.
O LINQ to DataSet permite que os desenvolvedores criem consultas complexas e poderosas em um DataSet usando LINQ. Uma consulta LINQ to DataSet retorna uma enumeração de objetos DataRow, no entanto, que não é facilmente usada em um cenário de associação. DataView pode ser criado de uma consulta LINQ to DataSet e assume as características de filtragem e classificação dessa consulta. LINQ to DataSet estende a funcionalidade do DataView fornecendo filtragem e classificação baseadas em expressão LINQ, o que permite operações de filtragem e classificação muito mais complexas e poderosas do que filtragem e classificação baseadas em cadeia de caracteres. Consulte Data Binding e LINQ to DataSet para obter mais informações.
Construtores
DataView() |
Inicializa uma nova instância da classe DataView. |
DataView(DataTable) |
Inicializa uma nova instância da classe DataView com o DataTableespecificado. |
DataView(DataTable, String, String, DataViewRowState) |
Inicializa uma nova instância da classe DataView com os DataTable, RowFilter, Sorte DataViewRowStateespecificados. |
Propriedades
AllowDelete |
Obtém ou define um valor que indica se as exclusões são permitidas. |
AllowEdit |
Obtém ou define um valor que indica se as edições são permitidas. |
AllowNew |
Obtém ou define um valor que indica se as novas linhas podem ser adicionadas usando o método AddNew(). |
ApplyDefaultSort |
Obtém ou define um valor que indica se a classificação padrão deve ser usada. A classificação padrão é (crescente) por todas as chaves primárias, conforme especificado por PrimaryKey. |
Container |
Obtém o contêiner do componente. (Herdado de MarshalByValueComponent) |
Count |
Obtém o número de registros no DataView depois que RowFilter e RowStateFilter foram aplicados. |
DataViewManager |
Obtém o DataViewManager associado a essa exibição. |
DesignMode |
Obtém um valor que indica se o componente está atualmente no modo de design. (Herdado de MarshalByValueComponent) |
Events |
Obtém a lista de manipuladores de eventos anexados a esse componente. (Herdado de MarshalByValueComponent) |
IsInitialized |
Obtém um valor que indica se o componente é inicializado. |
IsOpen |
Obtém um valor que indica se a fonte de dados está aberta no momento e projetando exibições de dados no DataTable. |
Item[Int32] |
Obtém uma linha de dados de uma tabela especificada. |
RowFilter |
Obtém ou define a expressão usada para filtrar quais linhas são exibidas no DataView. |
RowStateFilter |
Obtém ou define o filtro de estado de linha usado no DataView. |
Site |
Obtém ou define o site do componente. (Herdado de MarshalByValueComponent) |
Sort |
Obtém ou define a coluna de classificação ou colunas e a ordem de classificação para o DataView. |
Table |
Obtém ou define o DataTablede origem. |
Métodos
AddNew() |
Adiciona uma nova linha ao DataView. |
BeginInit() |
Inicia a inicialização de um DataView que é usado em um formulário ou usado por outro componente. A inicialização ocorre em runtime. |
Close() |
Fecha o DataView. |
ColumnCollectionChanged(Object, CollectionChangeEventArgs) |
Ocorre depois que um DataColumnCollection foi alterado com êxito. |
CopyTo(Array, Int32) |
Copia itens em uma matriz. Somente para Interfaces do Web Forms. |
Delete(Int32) |
Exclui uma linha no índice especificado. |
Dispose() |
Libera todos os recursos usados pelo MarshalByValueComponent. (Herdado de MarshalByValueComponent) |
Dispose(Boolean) |
Descarta os recursos (além da memória) usados pelo objeto DataView. |
EndInit() |
Termina a inicialização de um DataView que é usado em um formulário ou usado por outro componente. A inicialização ocorre em runtime. |
Equals(DataView) |
Determina se as instâncias de DataView especificadas são consideradas iguais. |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
Find(Object) |
Localiza uma linha no DataView pelo valor da chave de classificação especificado. |
Find(Object[]) |
Localiza uma linha no DataView pelos valores de chave de classificação especificados. |
FindRows(Object) |
Retorna uma matriz de objetos DataRowView cujas colunas correspondem ao valor da chave de classificação especificado. |
FindRows(Object[]) |
Retorna uma matriz de objetos DataRowView cujas colunas correspondem ao valor da chave de classificação especificado. |
GetEnumerator() |
Obtém um enumerador para este DataView. |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetService(Type) |
Obtém o implementador do IServiceProvider. (Herdado de MarshalByValueComponent) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
IndexListChanged(Object, ListChangedEventArgs) |
Ocorre depois que um DataView foi alterado com êxito. |
MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
OnListChanged(ListChangedEventArgs) |
Gera o evento ListChanged. |
Open() |
Abre um DataView. |
Reset() |
Reservado somente para uso interno. |
ToString() |
Retorna um String que contém o nome do Component, se houver. Esse método não deve ser substituído. (Herdado de MarshalByValueComponent) |
ToTable() |
Cria e retorna um novo DataTable com base em linhas em um DataViewexistente. |
ToTable(Boolean, String[]) |
Cria e retorna um novo DataTable com base em linhas em um DataViewexistente. |
ToTable(String) |
Cria e retorna um novo DataTable com base em linhas em um DataViewexistente. |
ToTable(String, Boolean, String[]) |
Cria e retorna um novo DataTable com base em linhas em um DataViewexistente. |
UpdateIndex() |
Reservado somente para uso interno. |
UpdateIndex(Boolean) |
Reservado somente para uso interno. |
Eventos
Disposed |
Adiciona um manipulador de eventos para ouvir o evento Disposed no componente. (Herdado de MarshalByValueComponent) |
Initialized |
Ocorre quando a inicialização do DataView é concluída. |
ListChanged |
Ocorre quando a lista gerenciada pelo DataView é alterada. |
Implantações explícitas de interface
IBindingList.AddIndex(PropertyDescriptor) |
Para obter uma descrição desse membro, consulte AddIndex(PropertyDescriptor). |
IBindingList.AddNew() |
Para obter uma descrição desse membro, consulte AddNew(). |
IBindingList.AllowEdit |
Para obter uma descrição desse membro, consulte AllowEdit. |
IBindingList.AllowNew |
Para obter uma descrição desse membro, consulte AllowNew. |
IBindingList.AllowRemove |
Para obter uma descrição desse membro, consulte AllowRemove. |
IBindingList.ApplySort(PropertyDescriptor, ListSortDirection) |
Para obter uma descrição desse membro, consulte ApplySort(PropertyDescriptor, ListSortDirection). |
IBindingList.Find(PropertyDescriptor, Object) |
Para obter uma descrição desse membro, consulte Find(PropertyDescriptor, Object). |
IBindingList.IsSorted |
Para obter uma descrição desse membro, consulte IsSorted. |
IBindingList.RemoveIndex(PropertyDescriptor) |
Para obter uma descrição desse membro, consulte RemoveIndex(PropertyDescriptor). |
IBindingList.RemoveSort() |
Para obter uma descrição desse membro, consulte RemoveSort(). |
IBindingList.SortDirection |
Para obter uma descrição desse membro, consulte SortDirection. |
IBindingList.SortProperty |
Para obter uma descrição desse membro, consulte SortProperty. |
IBindingList.SupportsChangeNotification |
Para obter uma descrição desse membro, consulte SupportsChangeNotification. |
IBindingList.SupportsSearching |
Para obter uma descrição desse membro, consulte SupportsSearching. |
IBindingList.SupportsSorting |
Para obter uma descrição desse membro, consulte SupportsSorting. |
IBindingListView.ApplySort(ListSortDescriptionCollection) |
Para obter uma descrição desse membro, consulte ApplySort(ListSortDescriptionCollection). |
IBindingListView.Filter |
Para obter uma descrição desse membro, consulte Filter. |
IBindingListView.RemoveFilter() |
Para obter uma descrição desse membro, consulte RemoveFilter(). |
IBindingListView.SortDescriptions |
Para obter uma descrição desse membro, consulte SortDescriptions. |
IBindingListView.SupportsAdvancedSorting |
Para obter uma descrição desse membro, consulte SupportsAdvancedSorting. |
IBindingListView.SupportsFiltering |
Para obter uma descrição desse membro, consulte SupportsFiltering. |
ICollection.IsSynchronized |
Para obter uma descrição desse membro, consulte IsSynchronized. |
ICollection.SyncRoot |
Para obter uma descrição desse membro, consulte SyncRoot. |
IList.Add(Object) |
Para obter uma descrição desse membro, consulte Add(Object). |
IList.Clear() |
Para obter uma descrição desse membro, consulte Clear(). |
IList.Contains(Object) |
Para obter uma descrição desse membro, consulte Contains(Object). |
IList.IndexOf(Object) |
Para obter uma descrição desse membro, consulte IndexOf(Object). |
IList.Insert(Int32, Object) |
Para obter uma descrição desse membro, consulte Insert(Int32, Object). |
IList.IsFixedSize |
Para obter uma descrição desse membro, consulte IsFixedSize. |
IList.IsReadOnly |
Para obter uma descrição desse membro, consulte IsReadOnly. |
IList.Item[Int32] |
Para obter uma descrição desse membro, consulte Item[Int32]. |
IList.Remove(Object) |
Para obter uma descrição desse membro, consulte Remove(Object). |
IList.RemoveAt(Int32) |
Para obter uma descrição desse membro, consulte RemoveAt(Int32). |
ITypedList.GetItemProperties(PropertyDescriptor[]) |
Para obter uma descrição desse membro, consulte GetItemProperties(PropertyDescriptor[]). |
ITypedList.GetListName(PropertyDescriptor[]) |
Para obter uma descrição desse membro, consulte GetListName(PropertyDescriptor[]). |
Métodos de Extensão
GetKeyedService<T>(IServiceProvider, Object) |
Obtém um serviço do tipo |
GetKeyedServices(IServiceProvider, Type, Object) |
Obtém uma enumeração de serviços do tipo |
GetKeyedServices<T>(IServiceProvider, Object) |
Obtém uma enumeração de serviços do tipo |
GetRequiredKeyedService(IServiceProvider, Type, Object) |
Obtém um serviço do tipo |
GetRequiredKeyedService<T>(IServiceProvider, Object) |
Obtém um serviço do tipo |
CreateAsyncScope(IServiceProvider) |
Cria um novo AsyncServiceScope que pode ser usado para resolver serviços com escopo. |
CreateScope(IServiceProvider) |
Cria um novo IServiceScope que pode ser usado para resolver serviços com escopo. |
GetRequiredService(IServiceProvider, Type) |
Obtenha o serviço do tipo |
GetRequiredService<T>(IServiceProvider) |
Obtenha o serviço do tipo |
GetService<T>(IServiceProvider) |
Obtenha o serviço do tipo |
GetServices(IServiceProvider, Type) |
Obter uma enumeração de serviços do tipo |
GetServices<T>(IServiceProvider) |
Obter uma enumeração de serviços do tipo |
GetFakeLogCollector(IServiceProvider) |
Obtém o objeto que coleta registros de log enviados para o agente falso. |
GetFakeRedactionCollector(IServiceProvider) |
Obtém a instância falsa do coletor de refatoração do contêiner de injeção de dependência. |
Cast<TResult>(IEnumerable) |
Converte os elementos de um IEnumerable para o tipo especificado. |
OfType<TResult>(IEnumerable) |
Filtra os elementos de um IEnumerable com base em um tipo especificado. |
AsParallel(IEnumerable) |
Habilita a paralelização de uma consulta. |
AsQueryable(IEnumerable) |
Converte um IEnumerable em um IQueryable. |
Aplica-se a
Acesso thread-safe
Esse tipo é seguro para operações de leitura multithreaded. Você deve sincronizar todas as operações de gravação.