DataView Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Représente une vue personnalisée, accessible en liaison de données, d’un DataTable pour le tri, le filtrage, la recherche, la modification et la navigation. Le DataView ne stocke pas de données, mais représente plutôt une vue connectée de son DataTablecorrespondante. Les modifications apportées aux données du DataViewaffecteront la DataTable. Les modifications apportées aux données de DataTableaffectent toutes les DataViewassociées.
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
- Héritage
- Implémente
Exemples
L’exemple suivant crée une seule DataTable avec une colonne et cinq lignes. Deux objets DataView sont créés et le RowStateFilter est défini sur chacun pour afficher différentes vues des données de table. Les valeurs sont ensuite imprimées.
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
L’exemple suivant crée une DataView de commandes en ligne ordonnées par total en raison d’une requête 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
Remarques
Une fonction majeure de l'DataView consiste à autoriser la liaison de données sur Windows Forms et Web Forms.
En outre, un DataView peut être personnalisé pour présenter un sous-ensemble de données à partir de l'DataTable. Cette fonctionnalité vous permet d’avoir deux contrôles liés au même DataTable, mais qui affichent différentes versions des données. Par exemple, un contrôle peut être lié à un DataView qui affiche toutes les lignes de la table, et une seconde peut être configurée pour afficher uniquement les lignes qui ont été supprimées de l'DataTable. Le DataTable possède également une propriété DefaultView. Cette opération retourne la DataView par défaut pour la table. Par exemple, si vous souhaitez créer une vue personnalisée sur la table, définissez la RowFilter sur la DataView retournée par le DefaultView.
Pour créer une vue filtrée et triée des données, définissez les propriétés RowFilter et Sort. Utilisez ensuite la propriété Item[] pour renvoyer une seule DataRowView.
Vous pouvez également ajouter et supprimer de l’ensemble de lignes à l’aide des méthodes AddNew et Delete. Lorsque vous utilisez ces méthodes, la propriété RowStateFilter peut définir pour spécifier que seules les lignes supprimées ou les nouvelles lignes doivent être affichées par le DataView.
Note
Si vous ne spécifiez pas explicitement de critères de tri pour DataView
, les objets DataRowView
dans DataView
sont triés en fonction de l’index des DataRow
correspondantes de DataView dans le DataTable.Rows
DataRowCollection
.
LINQ to DataSet permet aux développeurs de créer des requêtes complexes et puissantes sur un DataSet à l’aide de LINQ. Une requête LINQ to DataSet retourne une énumération d’objets DataRow, mais qui n’est pas facilement utilisée dans un scénario de liaison. DataView pouvez être créé à partir d’une requête LINQ to DataSet et prendre en charge les caractéristiques de filtrage et de tri de cette requête. LINQ to DataSet étend les fonctionnalités de l'DataView en fournissant un filtrage et un tri basés sur des expressions LINQ, ce qui permet des opérations de filtrage et de tri beaucoup plus complexes et puissantes que le filtrage et le tri basés sur des chaînes. Pour plus d’informations, consultez liaison de données et LINQ to DataSet.
Constructeurs
DataView() |
Initialise une nouvelle instance de la classe DataView. |
DataView(DataTable) |
Initialise une nouvelle instance de la classe DataView avec la DataTablespécifiée. |
DataView(DataTable, String, String, DataViewRowState) |
Initialise une nouvelle instance de la classe DataView avec les DataTable, RowFilter, Sortet DataViewRowStatespécifiés. |
Propriétés
AllowDelete |
Obtient ou définit une valeur qui indique si les suppressions sont autorisées. |
AllowEdit |
Obtient ou définit une valeur qui indique si les modifications sont autorisées. |
AllowNew |
Obtient ou définit une valeur qui indique si les nouvelles lignes peuvent être ajoutées à l’aide de la méthode AddNew(). |
ApplyDefaultSort |
Obtient ou définit une valeur qui indique s’il faut utiliser le tri par défaut. Le tri par défaut est (croissant) par toutes les clés primaires, comme spécifié par PrimaryKey. |
Container |
Obtient le conteneur du composant. (Hérité de MarshalByValueComponent) |
Count |
Obtient le nombre d’enregistrements dans le DataView après RowFilter et RowStateFilter ont été appliqués. |
DataViewManager |
Obtient la DataViewManager associée à cette vue. |
DesignMode |
Obtient une valeur indiquant si le composant est actuellement en mode création. (Hérité de MarshalByValueComponent) |
Events |
Obtient la liste des gestionnaires d’événements attachés à ce composant. (Hérité de MarshalByValueComponent) |
IsInitialized |
Obtient une valeur qui indique si le composant est initialisé. |
IsOpen |
Obtient une valeur qui indique si la source de données est actuellement ouverte et projetant des vues de données sur le DataTable. |
Item[Int32] |
Obtient une ligne de données d’une table spécifiée. |
RowFilter |
Obtient ou définit l’expression utilisée pour filtrer les lignes qui sont consultées dans le DataView. |
RowStateFilter |
Obtient ou définit le filtre d’état de ligne utilisé dans le DataView. |
Site |
Obtient ou définit le site du composant. (Hérité de MarshalByValueComponent) |
Sort |
Obtient ou définit la colonne de tri ou les colonnes, et l’ordre de tri pour le DataView. |
Table |
Obtient ou définit la DataTablesource . |
Méthodes
AddNew() |
Ajoute une nouvelle ligne au DataView. |
BeginInit() |
Démarre l’initialisation d’un DataView utilisé sur un formulaire ou utilisé par un autre composant. L’initialisation se produit au moment de l’exécution. |
Close() |
Ferme le DataView. |
ColumnCollectionChanged(Object, CollectionChangeEventArgs) |
Se produit une fois qu’un DataColumnCollection a été modifié avec succès. |
CopyTo(Array, Int32) |
Copie les éléments dans un tableau. Uniquement pour les interfaces Web Forms. |
Delete(Int32) |
Supprime une ligne à l’index spécifié. |
Dispose() |
Libère toutes les ressources utilisées par le MarshalByValueComponent. (Hérité de MarshalByValueComponent) |
Dispose(Boolean) |
Supprime les ressources (autres que la mémoire) utilisées par l’objet DataView. |
EndInit() |
Termine l’initialisation d’un DataView utilisé sur un formulaire ou utilisé par un autre composant. L’initialisation se produit au moment de l’exécution. |
Equals(DataView) |
Détermine si les instances de DataView spécifiées sont considérées comme égales. |
Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
Find(Object) |
Recherche une ligne dans la DataView par la valeur de clé de tri spécifiée. |
Find(Object[]) |
Recherche une ligne dans la DataView par les valeurs de clé de tri spécifiées. |
FindRows(Object) |
Retourne un tableau d’objets DataRowView dont les colonnes correspondent à la valeur de clé de tri spécifiée. |
FindRows(Object[]) |
Retourne un tableau d’objets DataRowView dont les colonnes correspondent à la valeur de clé de tri spécifiée. |
GetEnumerator() |
Obtient un énumérateur pour cette DataView. |
GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
GetService(Type) |
Obtient l’implémenteur du IServiceProvider. (Hérité de MarshalByValueComponent) |
GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
IndexListChanged(Object, ListChangedEventArgs) |
Se produit une fois qu’un DataView a été modifié avec succès. |
MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
OnListChanged(ListChangedEventArgs) |
Déclenche l’événement ListChanged. |
Open() |
Ouvre un DataView. |
Reset() |
Réservé uniquement pour une utilisation interne. |
ToString() |
Retourne un String contenant le nom du Component, le cas échéant. Cette méthode ne doit pas être remplacée. (Hérité de MarshalByValueComponent) |
ToTable() |
Crée et retourne une nouvelle DataTable basée sur des lignes d’un DataViewexistant. |
ToTable(Boolean, String[]) |
Crée et retourne une nouvelle DataTable basée sur des lignes d’un DataViewexistant. |
ToTable(String) |
Crée et retourne une nouvelle DataTable basée sur des lignes d’un DataViewexistant. |
ToTable(String, Boolean, String[]) |
Crée et retourne une nouvelle DataTable basée sur des lignes d’un DataViewexistant. |
UpdateIndex() |
Réservé uniquement pour une utilisation interne. |
UpdateIndex(Boolean) |
Réservé uniquement pour une utilisation interne. |
Événements
Disposed |
Ajoute un gestionnaire d’événements pour écouter l’événement Disposed sur le composant. (Hérité de MarshalByValueComponent) |
Initialized |
Se produit lorsque l’initialisation de la DataView est terminée. |
ListChanged |
Se produit lorsque la liste gérée par le DataView change. |
Implémentations d’interfaces explicites
IBindingList.AddIndex(PropertyDescriptor) |
Pour obtenir une description de ce membre, consultez AddIndex(PropertyDescriptor). |
IBindingList.AddNew() |
Pour obtenir une description de ce membre, consultez AddNew(). |
IBindingList.AllowEdit |
Pour obtenir une description de ce membre, consultez AllowEdit. |
IBindingList.AllowNew |
Pour obtenir une description de ce membre, consultez AllowNew. |
IBindingList.AllowRemove |
Pour obtenir une description de ce membre, consultez AllowRemove. |
IBindingList.ApplySort(PropertyDescriptor, ListSortDirection) |
Pour obtenir une description de ce membre, consultez ApplySort(PropertyDescriptor, ListSortDirection). |
IBindingList.Find(PropertyDescriptor, Object) |
Pour obtenir une description de ce membre, consultez Find(PropertyDescriptor, Object). |
IBindingList.IsSorted |
Pour obtenir une description de ce membre, consultez IsSorted. |
IBindingList.RemoveIndex(PropertyDescriptor) |
Pour obtenir une description de ce membre, consultez RemoveIndex(PropertyDescriptor). |
IBindingList.RemoveSort() |
Pour obtenir une description de ce membre, consultez RemoveSort(). |
IBindingList.SortDirection |
Pour obtenir une description de ce membre, consultez SortDirection. |
IBindingList.SortProperty |
Pour obtenir une description de ce membre, consultez SortProperty. |
IBindingList.SupportsChangeNotification |
Pour obtenir une description de ce membre, consultez SupportsChangeNotification. |
IBindingList.SupportsSearching |
Pour obtenir une description de ce membre, consultez SupportsSearching. |
IBindingList.SupportsSorting |
Pour obtenir une description de ce membre, consultez SupportsSorting. |
IBindingListView.ApplySort(ListSortDescriptionCollection) |
Pour obtenir une description de ce membre, consultez ApplySort(ListSortDescriptionCollection). |
IBindingListView.Filter |
Pour obtenir une description de ce membre, consultez Filter. |
IBindingListView.RemoveFilter() |
Pour obtenir une description de ce membre, consultez RemoveFilter(). |
IBindingListView.SortDescriptions |
Pour obtenir une description de ce membre, consultez SortDescriptions. |
IBindingListView.SupportsAdvancedSorting |
Pour obtenir une description de ce membre, consultez SupportsAdvancedSorting. |
IBindingListView.SupportsFiltering |
Pour obtenir une description de ce membre, consultez SupportsFiltering. |
ICollection.IsSynchronized |
Pour obtenir une description de ce membre, consultez IsSynchronized. |
ICollection.SyncRoot |
Pour obtenir une description de ce membre, consultez SyncRoot. |
IList.Add(Object) |
Pour obtenir une description de ce membre, consultez Add(Object). |
IList.Clear() |
Pour obtenir une description de ce membre, consultez Clear(). |
IList.Contains(Object) |
Pour obtenir une description de ce membre, consultez Contains(Object). |
IList.IndexOf(Object) |
Pour obtenir une description de ce membre, consultez IndexOf(Object). |
IList.Insert(Int32, Object) |
Pour obtenir une description de ce membre, consultez Insert(Int32, Object). |
IList.IsFixedSize |
Pour obtenir une description de ce membre, consultez IsFixedSize. |
IList.IsReadOnly |
Pour obtenir une description de ce membre, consultez IsReadOnly. |
IList.Item[Int32] |
Pour obtenir une description de ce membre, consultez Item[Int32]. |
IList.Remove(Object) |
Pour obtenir une description de ce membre, consultez Remove(Object). |
IList.RemoveAt(Int32) |
Pour obtenir une description de ce membre, consultez RemoveAt(Int32). |
ITypedList.GetItemProperties(PropertyDescriptor[]) |
Pour obtenir une description de ce membre, consultez GetItemProperties(PropertyDescriptor[]). |
ITypedList.GetListName(PropertyDescriptor[]) |
Pour obtenir une description de ce membre, consultez GetListName(PropertyDescriptor[]). |
Méthodes d’extension
GetKeyedService<T>(IServiceProvider, Object) |
Obtient un service de type |
GetKeyedServices(IServiceProvider, Type, Object) |
Obtient une énumération des services de type |
GetKeyedServices<T>(IServiceProvider, Object) |
Obtient une énumération des services de type |
GetRequiredKeyedService(IServiceProvider, Type, Object) |
Obtient un service de type |
GetRequiredKeyedService<T>(IServiceProvider, Object) |
Obtient un service de type |
CreateAsyncScope(IServiceProvider) |
Crée une AsyncServiceScope qui peut être utilisée pour résoudre les services délimités. |
CreateScope(IServiceProvider) |
Crée une IServiceScope qui peut être utilisée pour résoudre les services délimités. |
GetRequiredService(IServiceProvider, Type) |
Obtenir le service de type |
GetRequiredService<T>(IServiceProvider) |
Obtenir le service de type |
GetService<T>(IServiceProvider) |
Obtenir le service de type |
GetServices(IServiceProvider, Type) |
Obtenir une énumération des services de type |
GetServices<T>(IServiceProvider) |
Obtenir une énumération des services de type |
GetFakeLogCollector(IServiceProvider) |
Obtient l’objet qui collecte les enregistrements de journal envoyés au faux enregistreur d’événements. |
GetFakeRedactionCollector(IServiceProvider) |
Obtient l’instance du collecteur redactoriel factice à partir du conteneur d’injection de dépendances. |
Cast<TResult>(IEnumerable) |
Convertit les éléments d’un IEnumerable en type spécifié. |
OfType<TResult>(IEnumerable) |
Filtre les éléments d’une IEnumerable en fonction d’un type spécifié. |
AsParallel(IEnumerable) |
Active la parallélisation d’une requête. |
AsQueryable(IEnumerable) |
Convertit un IEnumerable en IQueryable. |
S’applique à
Cohérence de thread
Ce type est sécurisé pour les opérations de lecture multithread. Vous devez synchroniser toutes les opérations d’écriture.
Voir aussi
- DataSet
- DataTable
- DataViewManager
- AsDataView
- dataSets, DataTables et DataViews (ADO.NET)