DataView Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta una visualizzazione personalizzata e disponibile per il data binding di un oggetto DataTable per l'ordinamento, il filtraggio, la ricerca, la modifica e l'esplorazione. L'oggetto DataView non memorizza dati ma rappresenta una visualizzazione connessa dell'oggetto DataTable corrispondente. Le modifiche ai dati dell'oggetto DataView influiscono sull'oggetto DataTable. Le modifiche ai dati dell'oggetto DataTable influiscono su tutti gli oggetti DataView associati ad esso.
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
- Ereditarietà
- Implementazioni
Esempio
Nell'esempio seguente viene creato un singolo DataTable con una colonna e cinque righe. Vengono creati due DataView oggetti e l'oggetto RowStateFilter viene impostato su ognuno per visualizzare visualizzazioni diverse dei dati della tabella. I valori vengono quindi stampati.
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
Nell'esempio seguente viene creato un DataView ordine di ordini online ordinati in base al totale dovuto da una query 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
Commenti
Una funzione principale di è DataView consentire il data binding sia in Windows Forms che in Web Forms.
È inoltre possibile personalizzare un oggetto DataView per presentare un subset di dati da DataTable. Questa funzionalità consente di disporre di due controlli associati allo stesso DataTableoggetto , ma che mostrano versioni diverse dei dati. Ad esempio, un controllo potrebbe essere associato a un DataView oggetto che mostra tutte le righe della tabella e un secondo potrebbe essere configurato per visualizzare solo le righe eliminate dall'oggetto DataTable. Ha DataTable anche una DefaultView proprietà. Restituisce il valore predefinito DataView per la tabella. Ad esempio, se si vuole creare una visualizzazione personalizzata nella tabella, impostare l'oggetto RowFilterDataView sul restituito da DefaultView.
Per creare una visualizzazione filtrata e ordinata dei dati, impostare le RowFilter proprietà e Sort . Usare quindi la Item[] proprietà per restituire un singolo DataRowViewoggetto .
È anche possibile aggiungere ed eliminare dal set di righe usando i AddNew metodi e Delete . Quando si usano questi metodi, la RowStateFilter proprietà può impostare per specificare che vengono visualizzate solo righe eliminate o nuove righe dall'oggetto DataView.
Nota
Se non si specificano in modo esplicito i criteri di ordinamento per , gli oggetti in DataView
vengono ordinati in base all'indice corrispondente DataRow
di DataView nell'oggetto DataTable.Rows
DataRowCollection
.DataRowView
DataView
LINQ to DataSet consente agli sviluppatori di creare query complesse e potenti tramite DataSet LINQ. Una query LINQ to DataSet restituisce tuttavia un'enumerazione di oggetti, che non viene usata facilmente in uno scenario di DataRow associazione. DataViewpuò essere creato da una query LINQ to DataSet e accetta le caratteristiche di filtro e ordinamento di tale query. LINQ to DataSet estende la funzionalità dell'oggetto DataView fornendo filtri e ordinamento basati su ESPRESSIONI LINQ, che consente operazioni di filtro e ordinamento molto più complesse e potenti rispetto al filtro e all'ordinamento basato su stringhe. Per altre informazioni, vedere Data Binding e LINQ to DataSet.
Costruttori
DataView() |
Inizializza una nuova istanza della classe DataView. |
DataView(DataTable) |
Inizializza una nuova istanza della classe DataView con l'oggetto DataTable specificato. |
DataView(DataTable, String, String, DataViewRowState) |
Inizializza una nuova istanza della classe DataView con gli oggetti DataTable, RowFilter, Sort e DataViewRowState specificati. |
Proprietà
AllowDelete |
Ottiene o imposta un valore che indica se sono consentite le eliminazioni. |
AllowEdit |
Ottiene o imposta un valore che indica se sono consentite le modifiche. |
AllowNew |
Ottiene o imposta un valore che indica se le nuove righe possono essere aggiunte con il metodo AddNew(). |
ApplyDefaultSort |
Ottiene o imposta un valore che indica se usare l'ordinamento predefinito. L'ordinamento predefinito è (ascendente) in base a tutte le chiavi primarie come specificato da PrimaryKey. |
Container |
Ottiene il contenitore del componente. (Ereditato da MarshalByValueComponent) |
Count |
Ottiene il numero di record nell'oggetto DataView dopo l'applicazione di RowFilter e RowStateFilter. |
DataViewManager |
Ottiene l'oggetto DataViewManager associato a questa visualizzazione. |
DesignMode |
Ottiene un valore che indica se il componente è in modalità progettazione. (Ereditato da MarshalByValueComponent) |
Events |
Ottiene l'elenco dei gestori eventi allegati a questo componente. (Ereditato da MarshalByValueComponent) |
IsInitialized |
Ottiene un valore che indica se il componente è stato inizializzato. |
IsOpen |
Ottiene un valore che indica se l'origine dati è attualmente aperta e proietta visualizzazioni dei dati in DataTable. |
Item[Int32] |
Ottiene una riga di dati da una tabella specificata. |
RowFilter |
Ottiene o imposta l'espressione usata per filtrare le righe da visualizzare nell'oggetto DataView. |
RowStateFilter |
Ottiene o imposta il filtro di stato della riga usato nell'oggetto DataView. |
Site |
Ottiene o imposta il sito del componente. (Ereditato da MarshalByValueComponent) |
Sort |
Ottiene o imposta la colonna o le colonne e l'ordinamento per l'oggetto DataView. |
Table |
Ottiene o imposta l'origine DataTable. |
Metodi
AddNew() |
Aggiunge una nuova riga all'oggetto DataView. |
BeginInit() |
Avvia l'inizializzazione di un oggetto DataView usato su un form o da un altro componente. L'inizializzazione avviene in fase di esecuzione. |
Close() |
Chiude l'oggetto DataView. |
ColumnCollectionChanged(Object, CollectionChangeEventArgs) |
Si verifica dopo la modifica di un oggetto DataColumnCollection. |
CopyTo(Array, Int32) |
Copia gli elementi in una matrice. Solo per le interfacce di Web Form. |
Delete(Int32) |
Elimina una riga in corrispondenza dell'indice specificato. |
Dispose() |
Rilascia tutte le risorse usate da MarshalByValueComponent. (Ereditato da MarshalByValueComponent) |
Dispose(Boolean) |
Elimina le risorse usate dall'oggetto DataView, tranne la memoria. |
EndInit() |
Termina l'inizializzazione di una classe DataView usata su un form o da un altro componente. L'inizializzazione avviene in fase di esecuzione. |
Equals(DataView) |
Determina se le istanze di DataView specificate sono considerate uguali. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
Find(Object) |
Trova una riga in DataView in base al valore di chiave di ordinamento specificato. |
Find(Object[]) |
Trova una riga nell'oggetto DataView in base ai valori delle chiavi di ordinamento specificati. |
FindRows(Object) |
Restituisce una matrice di oggetti DataRowView le cui colonne corrispondono al valore della chiave di ordinamento specificato. |
FindRows(Object[]) |
Restituisce una matrice di oggetti DataRowView le cui colonne corrispondono al valore della chiave di ordinamento specificato. |
GetEnumerator() |
Ottiene un enumeratore per questo oggetto DataView. |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetService(Type) |
Ottiene l'implementatore dell'interfaccia IServiceProvider. (Ereditato da MarshalByValueComponent) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
IndexListChanged(Object, ListChangedEventArgs) |
Si verifica dopo la modifica di un oggetto DataView. |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
OnListChanged(ListChangedEventArgs) |
Genera l'evento ListChanged. |
Open() |
Apre un oggetto DataView. |
Reset() |
Riservato esclusivamente per uso interno. |
ToString() |
Restituisce un oggetto String che contiene il nome dell'eventuale oggetto Component. Questo metodo non deve essere sottoposto a override. (Ereditato da MarshalByValueComponent) |
ToTable() |
Crea e restituisce un nuovo oggetto DataTable in base alle righe in un oggetto DataView esistente. |
ToTable(Boolean, String[]) |
Crea e restituisce un nuovo oggetto DataTable in base alle righe in un oggetto DataView esistente. |
ToTable(String) |
Crea e restituisce un nuovo oggetto DataTable in base alle righe in un oggetto DataView esistente. |
ToTable(String, Boolean, String[]) |
Crea e restituisce un nuovo oggetto DataTable in base alle righe in un oggetto DataView esistente. |
UpdateIndex() |
Riservato esclusivamente per uso interno. |
UpdateIndex(Boolean) |
Riservato esclusivamente per uso interno. |
Eventi
Disposed |
Aggiunge un gestore evento per restare in attesa dell'evento Disposed sul componente. (Ereditato da MarshalByValueComponent) |
Initialized |
Si verifica quando l'inizializzazione dell'oggetto DataView viene completata. |
ListChanged |
Si verifica quando l'elenco gestito dall'oggetto DataView cambia. |
Implementazioni dell'interfaccia esplicita
IBindingList.AddIndex(PropertyDescriptor) |
Per una descrizione di questo membro, vedere AddIndex(PropertyDescriptor). |
IBindingList.AddNew() |
Per una descrizione di questo membro, vedere AddNew(). |
IBindingList.AllowEdit |
Per una descrizione di questo membro, vedere AllowEdit. |
IBindingList.AllowNew |
Per una descrizione di questo membro, vedere AllowNew. |
IBindingList.AllowRemove |
Per una descrizione di questo membro, vedere AllowRemove. |
IBindingList.ApplySort(PropertyDescriptor, ListSortDirection) |
Per una descrizione di questo membro, vedere ApplySort(PropertyDescriptor, ListSortDirection). |
IBindingList.Find(PropertyDescriptor, Object) |
Per una descrizione di questo membro, vedere Find(PropertyDescriptor, Object). |
IBindingList.IsSorted |
Per una descrizione di questo membro, vedere IsSorted. |
IBindingList.RemoveIndex(PropertyDescriptor) |
Per una descrizione di questo membro, vedere RemoveIndex(PropertyDescriptor). |
IBindingList.RemoveSort() |
Per una descrizione di questo membro, vedere RemoveSort(). |
IBindingList.SortDirection |
Per una descrizione di questo membro, vedere SortDirection. |
IBindingList.SortProperty |
Per una descrizione di questo membro, vedere SortProperty. |
IBindingList.SupportsChangeNotification |
Per una descrizione di questo membro, vedere SupportsChangeNotification. |
IBindingList.SupportsSearching |
Per una descrizione di questo membro, vedere SupportsSearching. |
IBindingList.SupportsSorting |
Per una descrizione di questo membro, vedere SupportsSorting. |
IBindingListView.ApplySort(ListSortDescriptionCollection) |
Per una descrizione di questo membro, vedere ApplySort(ListSortDescriptionCollection). |
IBindingListView.Filter |
Per una descrizione di questo membro, vedere Filter. |
IBindingListView.RemoveFilter() |
Per una descrizione di questo membro, vedere RemoveFilter(). |
IBindingListView.SortDescriptions |
Per una descrizione di questo membro, vedere SortDescriptions. |
IBindingListView.SupportsAdvancedSorting |
Per una descrizione di questo membro, vedere SupportsAdvancedSorting. |
IBindingListView.SupportsFiltering |
Per una descrizione di questo membro, vedere SupportsFiltering. |
ICollection.IsSynchronized |
Per una descrizione di questo membro, vedere IsSynchronized. |
ICollection.SyncRoot |
Per una descrizione di questo membro, vedere SyncRoot. |
IList.Add(Object) |
Per una descrizione di questo membro, vedere Add(Object). |
IList.Clear() |
Per una descrizione di questo membro, vedere Clear(). |
IList.Contains(Object) |
Per una descrizione di questo membro, vedere Contains(Object). |
IList.IndexOf(Object) |
Per una descrizione di questo membro, vedere IndexOf(Object). |
IList.Insert(Int32, Object) |
Per una descrizione di questo membro, vedere Insert(Int32, Object). |
IList.IsFixedSize |
Per una descrizione di questo membro, vedere IsFixedSize. |
IList.IsReadOnly |
Per una descrizione di questo membro, vedere IsReadOnly. |
IList.Item[Int32] |
Per una descrizione di questo membro, vedere Item[Int32]. |
IList.Remove(Object) |
Per una descrizione di questo membro, vedere Remove(Object). |
IList.RemoveAt(Int32) |
Per una descrizione di questo membro, vedere RemoveAt(Int32). |
ITypedList.GetItemProperties(PropertyDescriptor[]) |
Per una descrizione di questo membro, vedere GetItemProperties(PropertyDescriptor[]). |
ITypedList.GetListName(PropertyDescriptor[]) |
Per una descrizione di questo membro, vedere GetListName(PropertyDescriptor[]). |
Metodi di estensione
GetKeyedService<T>(IServiceProvider, Object) |
Ottiene un servizio di tipo |
GetKeyedServices(IServiceProvider, Type, Object) |
Ottiene un'enumerazione dei servizi di tipo |
GetKeyedServices<T>(IServiceProvider, Object) |
Ottiene un'enumerazione dei servizi di tipo |
GetRequiredKeyedService(IServiceProvider, Type, Object) |
Ottiene un servizio di tipo |
GetRequiredKeyedService<T>(IServiceProvider, Object) |
Ottiene un servizio di tipo |
CreateAsyncScope(IServiceProvider) |
Crea un nuovo oggetto AsyncServiceScope che è possibile usare per risolvere i servizi con ambito. |
CreateScope(IServiceProvider) |
Crea un nuovo oggetto IServiceScope che è possibile usare per risolvere i servizi con ambito. |
GetRequiredService(IServiceProvider, Type) |
Ottiene il servizio di tipo |
GetRequiredService<T>(IServiceProvider) |
Ottiene il servizio di tipo |
GetService<T>(IServiceProvider) |
Ottiene il servizio di tipo |
GetServices(IServiceProvider, Type) |
Ottiene un'enumerazione di servizi di tipo |
GetServices<T>(IServiceProvider) |
Ottiene un'enumerazione di servizi di tipo |
GetFakeLogCollector(IServiceProvider) |
Ottiene l'oggetto che raccoglie i record di log inviati al logger falso. |
GetFakeRedactionCollector(IServiceProvider) |
Ottiene l'istanza dell'agente di raccolta redactor falso dal contenitore di inserimento delle dipendenze. |
Cast<TResult>(IEnumerable) |
Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato. |
OfType<TResult>(IEnumerable) |
Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato. |
AsParallel(IEnumerable) |
Consente la parallelizzazione di una query. |
AsQueryable(IEnumerable) |
Converte un oggetto IEnumerable in un oggetto IQueryable. |
Si applica a
Thread safety
Questo tipo è sicuro per le operazioni di lettura multithreading. È necessario sincronizzare tutte le operazioni di scrittura.
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per