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.
System.ComponentModel.MarshalByValueComponent
System.Data.DataView
Espace de noms : System.Data
Assembly : System.Data (dans System.Data.dll)
Public Class DataView _ Inherits MarshalByValueComponent _ Implements IBindingListView, IBindingList, IList, ICollection, _ IEnumerable, ITypedList, ISupportInitializeNotification, ISupportInitialize
public class DataView : MarshalByValueComponent, IBindingListView, IBindingList, IList, ICollection, IEnumerable, ITypedList, ISupportInitializeNotification, ISupportInitialize
public ref class DataView : public MarshalByValueComponent, IBindingListView, IBindingList, IList, ICollection, IEnumerable, ITypedList, ISupportInitializeNotification, ISupportInitialize
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.
| Nom | Description | |
|---|---|---|
|
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. |
| Nom | Description | |
|---|---|---|
|
AllowDelete | Définit ou obtient 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 l'ordre de tri par défaut doit être utilisé. |
|
Container | Obtient le conteneur du composant. (Hérité de MarshalByValueComponent.) |
|
Count | Obtient le nombre d'enregistrements dans un DataView une fois RowFilter et RowStateFilter appliqués. |
|
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 est initialisé. |
|
IsOpen | Obtient une valeur qui indique si la source de données est actuellement ouverte et projette des vues de données sur DataTable. |
|
Item | Obtient une ligne de données provenant d'une table spécifiée. |
|
RowFilter | Obtient ou définit l'expression utilisée pour filtrer les lignes qui s'affichent dans le DataView. |
|
RowStateFilter | Obtient ou définit le filtre d'état des lignes utilisé dans le DataView. |
|
Site | Obtient ou définit le site du composant. (Hérité de MarshalByValueComponent.) |
|
Sort | Obtient ou définit les colonnes à trier et l'ordre de tri de DataView. |
|
Table | Obtient ou définit le DataTable source. |
| Nom | Description | |
|---|---|---|
|
AddNew | Ajoute une nouvelle ligne à DataView. |
|
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. |
|
Close | Ferme DataView. |
|
ColumnCollectionChanged | Se produit lorsque DataColumnCollection a été correctement modifié. |
|
CopyTo | Copie des éléments dans un tableau. Uniquement pour les interfaces Web Forms. |
|
Delete | 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, exceptée la mémoire, utilisées par l'objet DataView. (Substitue MarshalByValueComponent.Dispose(Boolean).) |
|
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. |
|
Equals(DataView) | Détermine si les instances de DataView spécifiées sont considérées comme égales. |
|
Equals(Object) | Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.) |
|
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.) |
|
Find(Object) | Recherche une ligne dans le DataView à l'aide de la valeur de clé de tri spécifiée. |
|
Find(Object[]) | Recherche une ligne dans le DataView à l'aide des valeurs de clés 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 pour un type particulier. (Hérité de Object.) |
|
GetService | Obtient l'implémenteur du IServiceProvider. (Hérité de MarshalByValueComponent.) |
|
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) |
|
IndexListChanged | Se produit lorsque DataView a été correctement modifié. |
|
MemberwiseClone | Crée une copie superficielle de l'objet Object actif. (Hérité de Object.) |
|
OnListChanged | Déclenche l'événement ListChanged. |
|
Open | Ouvre DataView. |
|
Reset | Réservé exclusivement à un usage interne. |
|
ToString | Retourne String contenant le nom du Component, s'il existe. Cette méthode ne doit pas être substituée. (Hérité de MarshalByValueComponent.) |
|
ToTable() | Crée et retourne un nouveau DataTable selon les lignes d'un DataView existant. |
|
ToTable(String) | Crée et retourne un nouveau DataTable selon 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, Boolean, String[]) | Crée et retourne un nouveau DataTable basé sur les lignes d'un DataView existant. |
|
UpdateIndex() | Réservé exclusivement à un usage interne. |
|
UpdateIndex(Boolean) | Réservé exclusivement à un usage interne. |
| Nom | Description | |
|---|---|---|
|
Disposed | Ajoute un gestionnaire d'événements qui doit écouter l'événement Disposed pour le composant. (Hérité de MarshalByValueComponent.) |
|
Initialized | Se produit lorsque l'initialisation du DataView est terminée. |
|
ListChanged | Se produit en cas de modification de la liste managée par DataView. |
| Nom | Description | |
|---|---|---|
|
AsParallel | Active la parallélisation d'une requête. (Défini par ParallelEnumerable.) |
|
AsQueryable | Convertit un IEnumerable en IQueryable. (Défini par Queryable.) |
|
Cast<TResult> | Convertit les éléments d'un IEnumerable vers le type spécifié. (Défini par Enumerable.) |
|
OfType<TResult> | Filtre les éléments d'un IEnumerable en fonction du type spécifié. (Défini par Enumerable.) |
| Nom | Description | |
|---|---|---|
|
IBindingList.AddIndex | Pour obtenir une description de ce membre, consultez IBindingList.AddIndex. |
|
IBindingList.AddNew | Pour obtenir une description de ce membre, consultez IBindingList.AddNew. |
|
IBindingList.AllowEdit | Pour obtenir une description de ce membre, consultez IBindingList.AllowEdit. |
|
IBindingList.AllowNew | Pour obtenir une description de ce membre, consultez IBindingList.AllowNew. |
|
IBindingList.AllowRemove | Pour obtenir une description de ce membre, consultez IBindingList.AllowRemove. |
|
IBindingList.ApplySort | Pour obtenir une description de ce membre, consultez IBindingList.ApplySort. |
|
IBindingList.Find | Pour obtenir une description de ce membre, consultez IBindingList.Find. |
|
IBindingList.IsSorted | Pour obtenir une description de ce membre, consultez IBindingList.IsSorted. |
|
IBindingList.RemoveIndex | Pour obtenir une description de ce membre, consultez IBindingList.RemoveIndex. |
|
IBindingList.RemoveSort | Pour obtenir une description de ce membre, consultez IBindingList.RemoveSort. |
|
IBindingList.SortDirection | Pour obtenir une description de ce membre, consultez IBindingList.SortDirection. |
|
IBindingList.SortProperty | Pour obtenir une description de ce membre, consultez IBindingList.SortProperty. |
|
IBindingList.SupportsChangeNotification | Pour obtenir une description de ce membre, consultez IBindingList.SupportsChangeNotification. |
|
IBindingList.SupportsSearching | Pour obtenir une description de ce membre, consultez IBindingList.SupportsSearching. |
|
IBindingList.SupportsSorting | Pour obtenir une description de ce membre, consultez IBindingList.SupportsSorting. |
|
IBindingListView.ApplySort | Pour obtenir une description de ce membre, consultez IBindingListView.ApplySort. |
|
IBindingListView.Filter | Pour obtenir une description de ce membre, consultez IBindingListView.Filter. |
|
IBindingListView.RemoveFilter | Pour obtenir une description de ce membre, consultez IBindingListView.RemoveFilter. |
|
IBindingListView.SortDescriptions | Pour obtenir une description de ce membre, consultez IBindingListView.SortDescriptions. |
|
IBindingListView.SupportsAdvancedSorting | Pour obtenir une description de ce membre, consultez IBindingListView.SupportsAdvancedSorting. |
|
IBindingListView.SupportsFiltering | Pour obtenir une description de ce membre, consultez IBindingListView.SupportsFiltering. |
|
ICollection.IsSynchronized | Pour une description de ce membre, consultez ICollection.IsSynchronized. |
|
ICollection.SyncRoot | Pour obtenir une description de ce membre, consultez ICollection.SyncRoot. |
|
IList.Add | Pour une description de ce membre, consultez IList.Add. |
|
IList.Clear | Pour obtenir une description de ce membre, consultez IList.Clear. |
|
IList.Contains | Pour obtenir une description de ce membre, consultez IList.Contains. |
|
IList.IndexOf | Pour obtenir une description de ce membre, consultez IList.IndexOf. |
|
IList.Insert | Pour obtenir une description de ce membre, consultez IList.Insert. |
|
IList.IsFixedSize | Pour obtenir une description de ce membre, consultez IList.IsFixedSize. |
|
IList.IsReadOnly | Pour une description de ce membre, consultez IList.IsReadOnly. |
|
IList.Item | Pour obtenir une description de ce membre, consultez IList.Item. |
|
IList.Remove | Pour obtenir une description de ce membre, consultez IList.Remove. |
|
IList.RemoveAt | Pour obtenir une description de ce membre, consultez IList.RemoveAt. |
|
ITypedList.GetItemProperties | Pour obtenir une description de ce membre, consultez ITypedList.GetItemProperties. |
|
ITypedList.GetListName | Pour obtenir une description de ce membre, consultez ITypedList.GetListName. |
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
|
|---|
|
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.
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.
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
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 :
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
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;
.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 SP1Windows 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.
Ce type est sécurisé pour les opérations de lecture multithread. Vous devez synchroniser les opérations d'écriture.
Remarque