DataView Classe

Définition

Représente une vue personnalisée et pouvant être liée à des données de DataTable. Cette vue autorise le tri, le filtrage, la recherche, les modifications et la navigation. DataView ne stocke pas de données. Au lieu de cela, il offre une vue connectée de son DataTable correspondant. Les changements apportés aux données de DataView affectent DataTable. Les changements apportés aux données de DataTable affectent l’ensemble des DataView associés.

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 un single DataTable avec une colonne et cinq lignes. Deux DataView objets sont créés et le RowStateFilter est défini sur chacun pour afficher des vues différentes 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 un DataView de commandes en ligne classées par total dû à partir 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 du est d’autoriser la DataView liaison de données sur les Windows Forms et les Web Forms.

En outre, un DataView peut être personnalisé pour présenter un sous-ensemble de données à partir de DataTable. Cette fonctionnalité vous permet d’avoir deux contrôles liés au même DataTable, mais qui affichent des versions différentes des données. Par exemple, un contrôle peut être lié à un DataView qui affiche toutes les lignes de la table, et un second peut être configuré pour afficher uniquement les lignes qui ont été supprimées du DataTable. a DataTable également une DefaultView propriété . Cette opération retourne la valeur par défaut DataView pour la table. Par exemple, si vous souhaitez créer une vue personnalisée sur la table, définissez sur le RowFilterDataView retourné par le DefaultView.

Pour créer une vue filtrée et triée des données, définissez les RowFilter propriétés et Sort . Ensuite, utilisez la Item[] propriété pour renvoyer un seul DataRowView.

Vous pouvez également ajouter et supprimer de l’ensemble de lignes à l’aide des AddNew méthodes et Delete . Lorsque vous utilisez ces méthodes, la RowStateFilter propriété peut définir pour spécifier que seules les lignes supprimées ou les nouvelles lignes doivent être affichées par le DataView.

Notes

Si vous ne spécifiez pas explicitement de critères de tri pour , les DataRowView objets dans DataView sont triés en fonction de l’index de DataView correspondant DataRow dans le DataTable.RowsDataRowCollection.DataView

LINQ to DataSet permet aux développeurs de créer des requêtes complexes et puissantes sur un DataSet à l’aide de LINQ. Toutefois, une requête LINQ to DataSet retourne une énumération d’objetsDataRow, qui n’est pas facilement utilisée dans un scénario de liaison. DataViewpeut être créé à partir d’une requête LINQ to DataSet et prend les caractéristiques de filtrage et de tri de cette requête. LINQ to DataSet étend les fonctionnalités de la DataView en fournissant un filtrage et un tri basés sur une expression 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 une chaîne. 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 le DataTable spécifié.

DataView(DataTable, String, String, DataViewRowState)

Initialise une nouvelle instance de la classe DataView avec les DataTable, RowFilter, Sort et DataViewRowState spé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 si le tri par défaut doit être utilisé. Le tri par défaut est un tri croissant de 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 DataView après l’application de RowFilter et de RowStateFilter.

DataViewManager

Obtient le DataViewManager associé à cette vue.

DesignMode

Obtient une valeur indiquant si le composant est actuellement en mode design.

(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 a été initialisé.

IsOpen

Obtient une valeur qui indique si la source de données est actuellement ouverte et si elle projette des vues de données sur le DataTable.

Item[Int32]

Obtient une ligne de données à partir d’une table spécifiée.

RowFilter

Obtient ou définit l’expression utilisée pour filtrer les lignes qui s’affichent dans DataView.

RowStateFilter

Obtient ou définit le filtre d’état de ligne utilisé dans DataView.

Site

Obtient ou définit le site du composant.

(Hérité de MarshalByValueComponent)
Sort

Obtient ou définit la ou les colonnes de tri, ainsi que l’ordre de tri pour la DataView.

Table

Obtient ou définit la source DataTable.

Méthodes

AddNew()

Ajoute une nouvelle ligne au DataView.

BeginInit()

Commence l’initialisation d’un DataView qui est utilisé dans un formulaire ou par un autre composant. L'initialisation se produit au moment de l'exécution.

Close()

Ferme le DataView.

ColumnCollectionChanged(Object, CollectionChangeEventArgs)

Se produit après la modification réussie de DataColumnCollection.

CopyTo(Array, Int32)

Copie des é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 MarshalByValueComponent.

(Hérité de MarshalByValueComponent)
Dispose(Boolean)

Libère les ressources (autres que la mémoire) utilisées par l’objet DataView.

EndInit()

Termine l'initialisation d'un DataView qui est utilisé dans un formulaire ou par un autre composant. L'initialisation se produit au moment de l'exécution.

Equals(DataView)

Détermine si les instances 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 le DataView en fonction de la valeur de clé de tri spécifiée.

Find(Object[])

Recherche une ligne dans la DataView en fonction des 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 ce DataView.

GetHashCode()

Fait office 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 le Type de l'instance actuelle.

(Hérité de Object)
IndexListChanged(Object, ListChangedEventArgs)

Se produit après la modification réussie de DataView.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
OnListChanged(ListChangedEventArgs)

Déclenche l’événement ListChanged.

Open()

Ouvre un DataView.

Reset()

Réservé à un usage interne uniquement.

ToString()

Retourne un String contenant le nom du Component, s’il en existe un. Cette méthode ne doit pas être remplacée.

(Hérité de MarshalByValueComponent)
ToTable()

Crée et retourne un nouveau DataTable basé sur les lignes d’un DataView existant.

ToTable(Boolean, String[])

Crée et retourne un nouveau DataTable basé sur les lignes d’un DataView existant.

ToTable(String)

Crée et retourne un nouveau DataTable basé sur les lignes d’un DataView existant.

ToTable(String, Boolean, String[])

Crée et retourne un nouveau DataTable basé sur les lignes d’un DataView existant.

UpdateIndex()

Réservé à un usage interne uniquement.

UpdateIndex(Boolean)

Réservé à un usage interne uniquement.

É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 du DataView est terminée.

ListChanged

Se produit quand la liste gérée par 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

Cast<TResult>(IEnumerable)

Effectue un cast des éléments d'un IEnumerable vers le type spécifié.

OfType<TResult>(IEnumerable)

Filtre les éléments d'un IEnumerable en fonction du 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