Partager via


DataView Classe

Définition

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.RowsDataRowCollection.

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 T à partir du IServiceProvider.

GetKeyedServices(IServiceProvider, Type, Object)

Obtient une énumération des services de type serviceType à partir du IServiceProvider.

GetKeyedServices<T>(IServiceProvider, Object)

Obtient une énumération des services de type T à partir du IServiceProvider.

GetRequiredKeyedService(IServiceProvider, Type, Object)

Obtient un service de type serviceType à partir du IServiceProvider.

GetRequiredKeyedService<T>(IServiceProvider, Object)

Obtient un service de type T à partir du IServiceProvider.

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 serviceType à partir du IServiceProvider.

GetRequiredService<T>(IServiceProvider)

Obtenir le service de type T à partir du IServiceProvider.

GetService<T>(IServiceProvider)

Obtenir le service de type T à partir du IServiceProvider.

GetServices(IServiceProvider, Type)

Obtenir une énumération des services de type serviceType à partir du IServiceProvider.

GetServices<T>(IServiceProvider)

Obtenir une énumération des services de type T à partir du IServiceProvider.

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