DataView, classe (System.Data)

Changer de vue:
ScriptFree
Bibliothèque de classes .NET Framework
DataView, classe
Cet article a fait l'objet d'une traduction manuelle. Pour afficher simultanément cette page et le contenu source en anglais, choisissez le paramètre d'affichage Basse densité.

Représente une vue de DataTable personnalisée pouvant faire l'objet de liaisons de données pour le tri, la recherche, la modification et la navigation.

Hiérarchie d'héritage

System.Object
  System.ComponentModel.MarshalByValueComponent
    System.Data.DataView

Espace de noms :  System.Data
Assembly :  System.Data (dans System.Data.dll)
Syntaxe

Visual Basic
Public Class DataView _
	Inherits MarshalByValueComponent _
	Implements IBindingListView, IBindingList, IList, ICollection,  _
	IEnumerable, ITypedList, ISupportInitializeNotification, ISupportInitialize
C#
public class DataView : MarshalByValueComponent, IBindingListView, 
	IBindingList, IList, ICollection, IEnumerable, ITypedList, 
	ISupportInitializeNotification, ISupportInitialize
VisualC++
public ref class DataView : public MarshalByValueComponent, 
	IBindingListView, IBindingList, IList, ICollection, IEnumerable, 
	ITypedList, ISupportInitializeNotification, ISupportInitialize
F#
type DataView =  
    class
        inherit MarshalByValueComponent
        interface IBindingListView
        interface IBindingList
        interface IList
        interface ICollection
        interface IEnumerable
        interface ITypedList
        interface ISupportInitializeNotification
        interface ISupportInitialize
    end

Le type DataView expose les membres suivants.

Constructeurs

  Nom Description
Méthode publique Pris en charge par XNA Framework DataView() Initialise une nouvelle instance de la classe DataView.
Méthode publique Pris en charge par XNA Framework DataView(DataTable) Initialise une nouvelle instance de la classe DataView avec le DataTable spécifié.
Méthode publique Pris en charge par XNA Framework DataView(DataTable, String, String, DataViewRowState) Initialise une nouvelle instance de la classe DataView avec les DataTable, RowFilter, Sort et DataViewRowState spécifiés.
Début
Propriétés

  Nom Description
Propriété publique Pris en charge par XNA Framework AllowDelete Définit ou obtient une valeur qui indique si les suppressions sont autorisées.
Propriété publique Pris en charge par XNA Framework AllowEdit Obtient ou définit une valeur qui indique si les modifications sont autorisées.
Propriété publique Pris en charge par XNA Framework AllowNew Obtient ou définit une valeur qui indique si les nouvelles lignes peuvent être ajoutées à l'aide de la méthode AddNew.
Propriété publique Pris en charge par XNA Framework ApplyDefaultSort Obtient ou définit une valeur qui indique si l'ordre de tri par défaut doit être utilisé.
Propriété publique Pris en charge par XNA Framework Container Obtient le conteneur du composant. (Hérité de MarshalByValueComponent.)
Propriété publique Pris en charge par XNA Framework Count Obtient le nombre d'enregistrements dans un DataView une fois RowFilter et RowStateFilter appliqués.
Propriété publique Pris en charge par XNA Framework DataViewManager Obtient le DataViewManager associé à cette vue.
Propriété publique Pris en charge par XNA Framework DesignMode Obtient une valeur indiquant si le composant est actuellement en mode design. (Hérité de MarshalByValueComponent.)
Propriété protégée Pris en charge par XNA Framework Events Obtient la liste des gestionnaires d'événements attachés à ce composant. (Hérité de MarshalByValueComponent.)
Propriété publique Pris en charge par XNA Framework IsInitialized Obtient une valeur qui indique si le composant est initialisé.
Propriété protégée Pris en charge par XNA Framework IsOpen Obtient une valeur qui indique si la source de données est actuellement ouverte et projette des vues de données sur DataTable.
Propriété publique Pris en charge par XNA Framework Item Obtient une ligne de données provenant d'une table spécifiée.
Propriété publique Pris en charge par XNA Framework RowFilter Obtient ou définit l'expression utilisée pour filtrer les lignes qui s'affichent dans le DataView.
Propriété publique Pris en charge par XNA Framework RowStateFilter Obtient ou définit le filtre d'état des lignes utilisé dans le DataView.
Propriété publique Pris en charge par XNA Framework Site Obtient ou définit le site du composant. (Hérité de MarshalByValueComponent.)
Propriété publique Pris en charge par XNA Framework Sort Obtient ou définit les colonnes à trier et l'ordre de tri de DataView.
Propriété publique Pris en charge par XNA Framework Table Obtient ou définit le DataTable source.
Début
Méthodes

  Nom Description
Méthode publique Pris en charge par XNA Framework AddNew Ajoute une nouvelle ligne à DataView.
Méthode publique Pris en charge par XNA Framework BeginInit Lance 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.
Méthode protégée Pris en charge par XNA Framework Close Ferme DataView.
Méthode protégée Pris en charge par XNA Framework ColumnCollectionChanged Se produit lorsque DataColumnCollection a été correctement modifié.
Méthode publique Pris en charge par XNA Framework CopyTo Copie des éléments dans un tableau. Uniquement pour les interfaces Web Forms.
Méthode publique Pris en charge par XNA Framework Delete Supprime une ligne à l'index spécifié.
Méthode publique Pris en charge par XNA Framework Dispose() Libère toutes les ressources utilisées par MarshalByValueComponent. (Hérité de MarshalByValueComponent.)
Méthode protégée Pris en charge par XNA Framework Dispose(Boolean) Libère les ressources, exceptée la mémoire, utilisées par l'objet DataView. (Substitue MarshalByValueComponent.Dispose(Boolean).)
Méthode publique Pris en charge par XNA Framework EndInit Met fin à 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.
Méthode publique Pris en charge par XNA Framework Equals(DataView) Détermine si les instances de DataView spécifiées sont considérées comme égales.
Méthode publique Pris en charge par XNA Framework Equals(Object) Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.)
Méthode protégée Pris en charge par XNA Framework Finalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de netto***ge avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de MarshalByValueComponent.)
Méthode publique Pris en charge par XNA Framework Find(Object) Recherche une ligne dans le DataView à l'aide de la valeur de clé de tri spécifiée.
Méthode publique Pris en charge par XNA Framework Find(Object[]) Recherche une ligne dans le DataView à l'aide des valeurs de clés de tri spécifiées.
Méthode publique Pris en charge par XNA Framework FindRows(Object) Retourne un tableau d'objets DataRowView dont les colonnes correspondent à la valeur de clé de tri spécifiée.
Méthode publique Pris en charge par XNA Framework FindRows(Object[]) Retourne un tableau d'objets DataRowView dont les colonnes correspondent à la valeur de clé de tri spécifiée.
Méthode publique Pris en charge par XNA Framework GetEnumerator Obtient un énumérateur pour ce DataView.
Méthode publique Pris en charge par XNA Framework GetHashCode Sert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publique Pris en charge par XNA Framework GetService Obtient l'implémenteur du IServiceProvider. (Hérité de MarshalByValueComponent.)
Méthode publique Pris en charge par XNA Framework GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode protégée Pris en charge par XNA Framework IndexListChanged Se produit lorsque DataView a été correctement modifié.
Méthode protégée Pris en charge par XNA Framework MemberwiseClone Crée une copie superficielle de l'objet Object actif. (Hérité de Object.)
Méthode protégée Pris en charge par XNA Framework OnListChanged Déclenche l'événement ListChanged.
Méthode protégée Pris en charge par XNA Framework Open Ouvre DataView.
Méthode protégée Pris en charge par XNA Framework Reset Réservé exclusivement à un usage interne.
Méthode publique Pris en charge par XNA Framework ToString Retourne String contenant le nom du Component, s'il existe. Cette méthode ne doit pas être substituée. (Hérité de MarshalByValueComponent.)
Méthode publique Pris en charge par XNA Framework ToTable() Crée et retourne un nouveau DataTable selon les lignes d'un DataView existant.
Méthode publique Pris en charge par XNA Framework ToTable(String) Crée et retourne un nouveau DataTable selon les lignes d'un DataView existant.
Méthode publique Pris en charge par XNA Framework ToTable(Boolean, String[]) Crée et retourne un nouveau DataTable basé sur les lignes d'un DataView existant.
Méthode publique Pris en charge par XNA Framework ToTable(String, Boolean, String[]) Crée et retourne un nouveau DataTable basé sur les lignes d'un DataView existant.
Méthode protégée Pris en charge par XNA Framework UpdateIndex() Réservé exclusivement à un usage interne.
Méthode protégée Pris en charge par XNA Framework UpdateIndex(Boolean) Réservé exclusivement à un usage interne.
Début
Événements

  Nom Description
Événement public Pris en charge par XNA Framework Disposed Ajoute un gestionnaire d'événements qui doit écouter l'événement Disposed pour le composant. (Hérité de MarshalByValueComponent.)
Événement public Pris en charge par XNA Framework Initialized Se produit lorsque l'initialisation du DataView est terminée.
Événement public Pris en charge par XNA Framework ListChanged Se produit en cas de modification de la liste managée par DataView.
Début
Méthodes d'extension

  Nom Description
Méthode d'extension publique AsParallel Active la parallélisation d'une requête. (Défini par ParallelEnumerable.)
Méthode d'extension publique AsQueryable Convertit un IEnumerable en IQueryable. (Défini par Queryable.)
Méthode d'extension publique Pris en charge par XNA Framework Cast<TResult> Convertit les éléments d'un IEnumerable vers le type spécifié. (Défini par Enumerable.)
Méthode d'extension publique Pris en charge par XNA Framework OfType<TResult> Filtre les éléments d'un IEnumerable en fonction du type spécifié. (Défini par Enumerable.)
Début
Implémentations d'interface explicite

  Nom Description
Implémentation d'interface explicite Méthode privée Pris en charge par XNA Framework IBindingList.AddIndex Pour obtenir une description de ce membre, consultez IBindingList.AddIndex.
Implémentation d'interface explicite Méthode privée Pris en charge par XNA Framework IBindingList.AddNew Pour obtenir une description de ce membre, consultez IBindingList.AddNew.
Implémentation d'interface explicite Propriété privée Pris en charge par XNA Framework IBindingList.AllowEdit Pour obtenir une description de ce membre, consultez IBindingList.AllowEdit.
Implémentation d'interface explicite Propriété privée Pris en charge par XNA Framework IBindingList.AllowNew Pour obtenir une description de ce membre, consultez IBindingList.AllowNew.
Implémentation d'interface explicite Propriété privée Pris en charge par XNA Framework IBindingList.AllowRemove Pour obtenir une description de ce membre, consultez IBindingList.AllowRemove.
Implémentation d'interface explicite Méthode privée Pris en charge par XNA Framework IBindingList.ApplySort Pour obtenir une description de ce membre, consultez IBindingList.ApplySort.
Implémentation d'interface explicite Méthode privée Pris en charge par XNA Framework IBindingList.Find Pour obtenir une description de ce membre, consultez IBindingList.Find.
Implémentation d'interface explicite Propriété privée Pris en charge par XNA Framework IBindingList.IsSorted Pour obtenir une description de ce membre, consultez IBindingList.IsSorted.
Implémentation d'interface explicite Méthode privée Pris en charge par XNA Framework IBindingList.RemoveIndex Pour obtenir une description de ce membre, consultez IBindingList.RemoveIndex.
Implémentation d'interface explicite Méthode privée Pris en charge par XNA Framework IBindingList.RemoveSort Pour obtenir une description de ce membre, consultez IBindingList.RemoveSort.
Implémentation d'interface explicite Propriété privée Pris en charge par XNA Framework IBindingList.SortDirection Pour obtenir une description de ce membre, consultez IBindingList.SortDirection.
Implémentation d'interface explicite Propriété privée Pris en charge par XNA Framework IBindingList.SortProperty Pour obtenir une description de ce membre, consultez IBindingList.SortProperty.
Implémentation d'interface explicite Propriété privée Pris en charge par XNA Framework IBindingList.SupportsChangeNotification Pour obtenir une description de ce membre, consultez IBindingList.SupportsChangeNotification.
Implémentation d'interface explicite Propriété privée Pris en charge par XNA Framework IBindingList.SupportsSearching Pour obtenir une description de ce membre, consultez IBindingList.SupportsSearching.
Implémentation d'interface explicite Propriété privée Pris en charge par XNA Framework IBindingList.SupportsSorting Pour obtenir une description de ce membre, consultez IBindingList.SupportsSorting.
Implémentation d'interface explicite Méthode privée Pris en charge par XNA Framework IBindingListView.ApplySort Pour obtenir une description de ce membre, consultez IBindingListView.ApplySort.
Implémentation d'interface explicite Propriété privée Pris en charge par XNA Framework IBindingListView.Filter Pour obtenir une description de ce membre, consultez IBindingListView.Filter.
Implémentation d'interface explicite Méthode privée Pris en charge par XNA Framework IBindingListView.RemoveFilter Pour obtenir une description de ce membre, consultez IBindingListView.RemoveFilter.
Implémentation d'interface explicite Propriété privée Pris en charge par XNA Framework IBindingListView.SortDescriptions Pour obtenir une description de ce membre, consultez IBindingListView.SortDescriptions.
Implémentation d'interface explicite Propriété privée Pris en charge par XNA Framework IBindingListView.SupportsAdvancedSorting Pour obtenir une description de ce membre, consultez IBindingListView.SupportsAdvancedSorting.
Implémentation d'interface explicite Propriété privée Pris en charge par XNA Framework IBindingListView.SupportsFiltering Pour obtenir une description de ce membre, consultez IBindingListView.SupportsFiltering.
Implémentation d'interface explicite Propriété privée Pris en charge par XNA Framework ICollection.IsSynchronized Pour une description de ce membre, consultez ICollection.IsSynchronized.
Implémentation d'interface explicite Propriété privée Pris en charge par XNA Framework ICollection.SyncRoot Pour obtenir une description de ce membre, consultez ICollection.SyncRoot.
Implémentation d'interface explicite Méthode privée Pris en charge par XNA Framework IList.Add Pour une description de ce membre, consultez IList.Add.
Implémentation d'interface explicite Méthode privée Pris en charge par XNA Framework IList.Clear Pour obtenir une description de ce membre, consultez IList.Clear.
Implémentation d'interface explicite Méthode privée Pris en charge par XNA Framework IList.Contains Pour obtenir une description de ce membre, consultez IList.Contains.
Implémentation d'interface explicite Méthode privée Pris en charge par XNA Framework IList.IndexOf Pour obtenir une description de ce membre, consultez IList.IndexOf.
Implémentation d'interface explicite Méthode privée Pris en charge par XNA Framework IList.Insert Pour obtenir une description de ce membre, consultez IList.Insert.
Implémentation d'interface explicite Propriété privée Pris en charge par XNA Framework IList.IsFixedSize Pour obtenir une description de ce membre, consultez IList.IsFixedSize.
Implémentation d'interface explicite Propriété privée Pris en charge par XNA Framework IList.IsReadOnly Pour une description de ce membre, consultez IList.IsReadOnly.
Implémentation d'interface explicite Propriété privée Pris en charge par XNA Framework IList.Item Pour obtenir une description de ce membre, consultez IList.Item.
Implémentation d'interface explicite Méthode privée Pris en charge par XNA Framework IList.Remove Pour obtenir une description de ce membre, consultez IList.Remove.
Implémentation d'interface explicite Méthode privée Pris en charge par XNA Framework IList.RemoveAt Pour obtenir une description de ce membre, consultez IList.RemoveAt.
Implémentation d'interface explicite Méthode privée Pris en charge par XNA Framework ITypedList.GetItemProperties Pour obtenir une description de ce membre, consultez ITypedList.GetItemProperties.
Implémentation d'interface explicite Méthode privée Pris en charge par XNA Framework ITypedList.GetListName Pour obtenir une description de ce membre, consultez ITypedList.GetListName.
Début
Notes

Une fonction principale de DataView consiste à autoriser la liaison de données sur les Windows Forms et les Web Forms.

En outre, DataView peut être personnalisé pour présenter un sous-jeu de données à partir de DataTable. Cette fonctionnalité vous permet d'avoir deux contrôles liés au même DataTable, mais affichant 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 deuxième peut être configuré pour afficher uniquement les lignes ayant été supprimées de DataTable. DataTable a également une propriété DefaultView. Ceci retourne le DataView par défaut pour la table. Par exemple, si vous souhaitez créer une vue personnalisée sur la table, affectez comme valeur de RowFilter le DataView retourné par 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 retourner un DataRowView unique.

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

Remarque Remarque

Si vous ne spécifiez pas explicitement des critères de tri pour DataView, les objets DataRowView dans DataView sont triés selon l'index du DataRow correspondant du DataView dans DataTable.RowsDataRowCollection.

LINQ to DataSet permet aux développeurs de créer des requêtes complexes et puissantes sur un DataSet en utilisant LINQ. Une requête LINQ to DataSet retourne une énumération d'objets DataRow, qui n'est toutefois pas utilisée facilement dans un scénario de liaison. DataView peut être créé d'une requête LINQ to DataSet et prend les caractéristique de filtrage et de tri de cette requête. LINQ to DataSet étend les fonctionnalités du DataView en fournissant un filtrage et un tri basés sur une expression LINQ 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. Consultez Liaison de données et LINQ to DataSet pour plus d'informations.

Exemples

L'exemple suivant crée un DataTable unique avec une colonne et cinq lignes. Deux objets DataView sont créés et RowStateFilter est défini sur chacun pour afficher différentes vues des données de la table. Les valeurs s'affichent ensuite.

Visual Basic

Private Sub DemonstrateDataView()
    ' Create one DataTable with one column.
    Dim table As DataTable = New DataTable("table")
    Dim colItem As DataColumn = 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 DataView = New DataView(table)
    Dim secondView As DataView = 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


C#

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.Rows[0]["item"]="cat";
    table.Rows[1]["item"] = "dog";
    table.AcceptChanges();

    // 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" + 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("\table" + view[i]["item"]);
    }
    Console.WriteLine();
}


L'exemple suivant crée un DataView de commandes en ligne classées en fonction du montant total dû à partir d'une requête LINQ to DataSet :

Visual Basic

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


C#

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;


Informations de version

.NET Framework

Pris en charge dans : 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1
Plateformes

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Sécurité des threads

Ce type est sécurisé pour les opérations de lecture multithread. Vous devez synchroniser les opérations d'écriture.

Voir aussi

Référence

Autres ressources