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 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 seul 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 la 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 principale de 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 de la table. Par exemple, si vous souhaitez créer une vue personnalisée sur la table, définissez le RowFilter sur le DataView retourné par .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 .DataView
Notes
Si vous ne spécifiez pas explicitement les critères de tri pour DataView
, les DataRowView
objets dans sont triés en DataView
fonction de l’index de DataView correspondant DataRow
dans .DataTable.Rows
DataRowCollection
LINQ to DataSet permet aux développeurs de créer des requêtes complexes et puissantes sur un à l’aide de DataSet 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 en charge 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
GetKeyedService<T>(IServiceProvider, Object) |
Obtient un service de type |
GetKeyedServices(IServiceProvider, Type, Object) |
Obtient une énumération des services de type |
GetKeyedServices<T>(IServiceProvider, Object) |
Obtient une énumération des services de type |
GetRequiredKeyedService(IServiceProvider, Type, Object) |
Obtient un service de type |
GetRequiredKeyedService<T>(IServiceProvider, Object) |
Obtient un service de type |
CreateAsyncScope(IServiceProvider) |
Crée un AsyncServiceScope qui peut être utilisé pour résoudre des services délimités. |
CreateScope(IServiceProvider) |
Crée un IServiceScope qui peut être utilisé pour résoudre des services délimités. |
GetRequiredService(IServiceProvider, Type) |
Obtient le service de type |
GetRequiredService<T>(IServiceProvider) |
Obtient le service de type |
GetService<T>(IServiceProvider) |
Obtient le service de type |
GetServices(IServiceProvider, Type) |
Obtient une énumération des services de type |
GetServices<T>(IServiceProvider) |
Obtient une énumération des services de type |
GetFakeLogCollector(IServiceProvider) |
Obtient l’objet qui collecte les enregistrements de journal envoyés au faux journal. |
GetFakeRedactionCollector(IServiceProvider) |
Obtient le faux collecteur de redacteurs instance à partir du conteneur d’injection de dépendances. |
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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour