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, pour le DataTable tri, le filtrage, la recherche, la modification et la navigation. Il DataView ne stocke pas de données, mais représente plutôt une vue connectée de ses données correspondantes DataTable. Les modifications apportées aux DataViewdonnées affecteront le DataTable. Les modifications apportées aux DataTabledonnées des données affectent tous les DataViewéléments 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 seul DataTable avec une colonne et cinq lignes. Deux DataView objets sont créés et sont RowStateFilter définis sur chacun d’eux 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 commande en ligne ordonnée 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 est d’autoriser la liaison de DataView 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 du DataTable. Cette fonctionnalité vous permet d’avoir deux contrôles liés au même DataTablecontrôle, 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 du DataTable. Il DataTable a également une DefaultView propriété. Cette propriété renvoie 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 l’affichage RowFilter sur le DataView retour par le DefaultView.
Pour créer une vue filtrée et triée des données, définissez les propriétés et Sort les RowFilter propriétés. 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 méthodes et Delete des AddNew méthodes. 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 sont affichées par le DataView.
Note
Si vous ne spécifiez pas explicitement de critères de tri, les objets contenus DataView dans sont triés en fonction de l’index des données correspondantes DataRow dans le .DataTable.RowsDataRowCollectionDataRowViewDataView
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, mais elle n’est pas facilement utilisée dans un scénario de DataRow liaison. DataView peut ê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 du DataView service en fournissant un filtrage et un tri basés sur des expressions LINQ, ce qui permet d’effectuer 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
| Nom | Description |
|---|---|
| DataView() |
Initialise une nouvelle instance de la classe DataView. |
| DataView(DataTable, String, String, DataViewRowState) |
Initialise une nouvelle instance de la DataView classe avec le DataTable, , RowFilterSortet DataViewRowState. |
| DataView(DataTable) |
Initialise une nouvelle instance de la DataView classe avec le fichier spécifié DataTable. |
Propriétés
| Nom | Description |
|---|---|
| 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 AddNew() méthode. |
| 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 la DataView suite RowFilter et RowStateFilter ont été appliqués. |
| DataViewManager |
Obtient l’élément DataViewManager associé à 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 source DataTable. |
Méthodes
| Nom | Description |
|---|---|
| AddNew() |
Ajoute une nouvelle ligne au DataView. |
| BeginInit() |
Démarre l’initialisation d’un DataView 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 a DataColumnCollection é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 formulaire ou utilisé par un autre composant. L’initialisation se produit au moment de l’exécution. |
| Equals(DataView) |
Détermine si les instances spécifiées DataView 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 valeur de clé de tri spécifiée. |
| Find(Object[]) |
Recherche une ligne dans les DataView 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() |
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 a DataView é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 nom 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 base sur les lignes d’un objet existant DataView. |
| ToTable(Boolean, String[]) |
Crée et retourne une nouvelle DataTable base sur les lignes d’un objet existant DataView. |
| ToTable(String, Boolean, String[]) |
Crée et retourne une nouvelle DataTable base sur les lignes d’un objet existant DataView. |
| ToTable(String) |
Crée et retourne une nouvelle DataTable base sur les lignes d’un objet existant DataView. |
| UpdateIndex() |
Réservé uniquement pour une utilisation interne. |
| UpdateIndex(Boolean) |
Réservé uniquement pour une utilisation interne. |
Événements
| Nom | Description |
|---|---|
| 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 l’objet DataView est terminée. |
| ListChanged |
Se produit lorsque la liste gérée par les DataView modifications. |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| 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
| Nom | Description |
|---|---|
| AsParallel(IEnumerable) |
Active la parallélisation d’une requête. |
| AsQueryable(IEnumerable) |
Convertit un IEnumerable en IQueryable. |
| 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é. |
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.