DataView Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt eine datenbindierbare, angepasste Ansicht einer DataTable für Sortierung, Filterung, Suche, Bearbeitung und Navigation vorgesehenen Ansicht dar. Die DataView Daten werden nicht gespeichert, sondern stellt stattdessen eine verbundene Ansicht der entsprechenden DataTableDaten dar. Änderungen an den DataViewDaten der Daten wirken sich auf die DataTable. Änderungen an den DataTableDaten der Daten wirken sich auf alle DataViewdamit verbundenen Daten aus.
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
- Vererbung
- Implementiert
Beispiele
Im folgenden Beispiel wird ein einzelnes DataTable Mit einer Spalte und fünf Zeilen erstellt. Es werden zwei DataView Objekte erstellt, die RowStateFilter jeweils so festgelegt sind, dass unterschiedliche Ansichten der Tabellendaten angezeigt werden. Die Werte werden dann gedruckt.
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
Im folgenden Beispiel wird eine DataView Von Onlinebestellungen erstellt, die nach Gesamtsumme von einer LINQ to DataSet-Abfrage sortiert wurden:
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
Hinweise
Eine wichtige Funktion besteht DataView darin, die Datenbindung sowohl in Windows Forms als auch in Web Forms zu ermöglichen.
Darüber hinaus kann eine DataView angepasst werden, um eine Teilmenge von Daten aus der DataTable. Mit dieser Funktion können Sie zwei Steuerelemente an denselben DataTableGebunden haben, die jedoch unterschiedliche Versionen der Daten anzeigen. Ein Steuerelement kann beispielsweise an ein DataView Steuerelement gebunden sein, das alle Zeilen in der Tabelle anzeigt, und eine Sekunde kann so konfiguriert werden, dass nur die Zeilen angezeigt werden, die aus der DataTableTabelle gelöscht wurden. Das hat DataTable auch eine DefaultView Eigenschaft. Dadurch wird der Standardwert DataView für die Tabelle zurückgegeben. Wenn Sie z. B. eine benutzerdefinierte Ansicht für die Tabelle erstellen möchten, legen Sie die RowFilter für die DataView von der DefaultViewTabelle zurückgegebene Ansicht fest.
Um eine gefilterte und sortierte Ansicht der Daten zu erstellen, legen Sie die RowFilter Daten und Sort Eigenschaften fest. Verwenden Sie dann die Item[] Eigenschaft, um eine einzelne DataRowViewzurückzugeben.
Sie können den Zeilensatz auch mithilfe AddNew der methoden Delete hinzufügen und löschen. Wenn Sie diese Methoden verwenden, kann die RowStateFilter Eigenschaft festgelegt werden, um anzugeben, dass nur gelöschte Zeilen oder neue Zeilen von der DataView.
Anmerkung
Wenn Sie keine expliziten Sortierkriterien DataViewangeben, werden die DataRowView Objekte in DataView der Auflistung basierend auf dem Index der entsprechenden DataRowDataTable.RowsDataRowCollectionDatenansicht sortiert.
LINQ to DataSet ermöglicht Es Entwicklern, komplexe, leistungsstarke Abfragen mithilfe DataSet von LINQ zu erstellen. Eine LINQ to DataSet-Abfrage gibt jedoch eine Aufzählung von DataRow Objekten zurück, die in einem Bindungsszenario nicht einfach verwendet wird. DataView kann aus einer LINQ to DataSet-Abfrage erstellt werden und übernimmt die Filter- und Sortiereigenschaften dieser Abfrage. LINQ to DataSet erweitert die Funktionalität des DataView durch LINQ-Ausdrücke für das Filtern und Sortieren, was weitaus komplexere und leistungsfähigere Filter- und Sortieroperationen als bei zeichenfolgenbasierten Verfahren ermöglicht. Weitere Informationen finden Sie unter "Datenbindung" und "LINQ to DataSet ".
Konstruktoren
| Name | Beschreibung |
|---|---|
| DataView() |
Initialisiert eine neue Instanz der DataView-Klasse. |
| DataView(DataTable, String, String, DataViewRowState) |
Initialisiert eine neue Instanz der DataView Klasse mit dem angegebenen DataTable, , RowFilter, , Sortund DataViewRowState. |
| DataView(DataTable) |
Initialisiert eine neue Instanz der DataView Klasse mit dem angegebenen DataTable. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| AllowDelete |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob Löschvorgang zulässig ist. |
| AllowEdit |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob Bearbeitungen zulässig sind. |
| AllowNew |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die neuen Zeilen mithilfe der AddNew() Methode hinzugefügt werden können. |
| ApplyDefaultSort |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die Standardsortierung verwendet werden soll. Die Standardsortierung ist (aufsteigend) nach allen Primärschlüsseln wie angegeben.PrimaryKey |
| Container |
Ruft den Container für die Komponente ab. (Geerbt von MarshalByValueComponent) |
| Count |
Ruft die Anzahl der Datensätze im DataView Anschluss RowFilter ab und RowStateFilter wurde angewendet. |
| DataViewManager |
Ruft die DataViewManager dieser Ansicht zugeordnete ab. |
| DesignMode |
Ruft einen Wert ab, der angibt, ob sich die Komponente derzeit im Entwurfsmodus befindet. (Geerbt von MarshalByValueComponent) |
| Events |
Ruft die Liste der Ereignishandler ab, die an diese Komponente angefügt sind. (Geerbt von MarshalByValueComponent) |
| IsInitialized |
Ruft einen Wert ab, der angibt, ob die Komponente initialisiert wird. |
| IsOpen |
Ruft einen Wert ab, der angibt, ob die Datenquelle zurzeit geöffnet ist, und projiziert Ansichten von Daten auf der DataTable. |
| Item[Int32] |
Ruft eine Datenzeile aus einer angegebenen Tabelle ab. |
| RowFilter |
Dient zum Abrufen oder Festlegen des Ausdrucks, der zum Filtern verwendet wird, welche Zeilen in der DataView. |
| RowStateFilter |
Dient zum Abrufen oder Festlegen des Zeilenstatusfilters, der in der DataView. |
| Site |
Dient zum Abrufen oder Festlegen der Website der Komponente. (Geerbt von MarshalByValueComponent) |
| Sort |
Dient zum Abrufen oder Festlegen der Sortierspalte oder Spalten und der Sortierreihenfolge für die DataView. |
| Table |
Ruft die Quelle DataTableab oder legt sie fest. |
Methoden
| Name | Beschreibung |
|---|---|
| AddNew() |
Fügt der DataViewZeile eine neue Zeile hinzu. |
| BeginInit() |
Startet die Initialisierung eines Formulars DataView , das in einem Formular verwendet wird oder von einer anderen Komponente verwendet wird. Die Initialisierung erfolgt zur Laufzeit. |
| Close() |
Schließt die DataView. |
| ColumnCollectionChanged(Object, CollectionChangeEventArgs) |
Tritt ein, nachdem eine DataColumnCollection erfolgreich geändert wurde. |
| CopyTo(Array, Int32) |
Kopiert Elemente in ein Array. Nur für Webformularschnittstellen. |
| Delete(Int32) |
Löscht eine Zeile am angegebenen Index. |
| Dispose() |
Veröffentlicht alle ressourcen, die von der MarshalByValueComponent. (Geerbt von MarshalByValueComponent) |
| Dispose(Boolean) |
Entfernt die vom Objekt verwendeten DataView Ressourcen (außer Speicher). |
| EndInit() |
Beendet die Initialisierung eines Formulars DataView , das in einem Formular verwendet wird oder von einer anderen Komponente verwendet wird. Die Initialisierung erfolgt zur Laufzeit. |
| Equals(DataView) |
Bestimmt, ob die angegebenen DataView Instanzen gleich sind. |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| Find(Object) |
Sucht eine Zeile im DataView durch den angegebenen Sortierschlüsselwert. |
| Find(Object[]) |
Sucht eine Zeile in der DataView durch die angegebenen Sortierschlüsselwerte. |
| FindRows(Object) |
Gibt ein Array von DataRowView Objekten zurück, deren Spalten dem angegebenen Sortierschlüsselwert entsprechen. |
| FindRows(Object[]) |
Gibt ein Array von DataRowView Objekten zurück, deren Spalten dem angegebenen Sortierschlüsselwert entsprechen. |
| GetEnumerator() |
Ruft einen Enumerator für dies DataViewab. |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetService(Type) |
Ruft den Implementierer der IServiceProvider. (Geerbt von MarshalByValueComponent) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| IndexListChanged(Object, ListChangedEventArgs) |
Tritt ein, nachdem eine DataView erfolgreich geändert wurde. |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| OnListChanged(ListChangedEventArgs) |
Löst das ListChanged-Ereignis aus. |
| Open() |
Öffnet ein DataView. |
| Reset() |
Nur für die interne Verwendung reserviert. |
| ToString() |
Gibt einen String mit dem Namen des Component, falls vorhanden, zurück. Diese Methode sollte nicht außer Kraft gesetzt werden. (Geerbt von MarshalByValueComponent) |
| ToTable() |
Erstellt und gibt eine neue DataTable basierend auf Zeilen in einer vorhandenen DataViewzurück. |
| ToTable(Boolean, String[]) |
Erstellt und gibt eine neue DataTable basierend auf Zeilen in einer vorhandenen DataViewzurück. |
| ToTable(String, Boolean, String[]) |
Erstellt und gibt eine neue DataTable basierend auf Zeilen in einer vorhandenen DataViewzurück. |
| ToTable(String) |
Erstellt und gibt eine neue DataTable basierend auf Zeilen in einer vorhandenen DataViewzurück. |
| UpdateIndex() |
Nur für die interne Verwendung reserviert. |
| UpdateIndex(Boolean) |
Nur für die interne Verwendung reserviert. |
Ereignisse
| Name | Beschreibung |
|---|---|
| Disposed |
Fügt einen Ereignishandler hinzu, um auf das Ereignis in der Disposed Komponente zu lauschen. (Geerbt von MarshalByValueComponent) |
| Initialized |
Tritt auf, wenn die Initialisierung des Vorgangs DataView abgeschlossen ist. |
| ListChanged |
Tritt auf, wenn die von den DataView Änderungen verwaltete Liste. |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| IBindingList.AddIndex(PropertyDescriptor) |
Eine Beschreibung dieses Mitglieds finden Sie unter AddIndex(PropertyDescriptor). |
| IBindingList.AddNew() |
Eine Beschreibung dieses Mitglieds finden Sie unter AddNew(). |
| IBindingList.AllowEdit |
Eine Beschreibung dieses Mitglieds finden Sie unter AllowEdit. |
| IBindingList.AllowNew |
Eine Beschreibung dieses Mitglieds finden Sie unter AllowNew. |
| IBindingList.AllowRemove |
Eine Beschreibung dieses Mitglieds finden Sie unter AllowRemove. |
| IBindingList.ApplySort(PropertyDescriptor, ListSortDirection) |
Eine Beschreibung dieses Mitglieds finden Sie unter ApplySort(PropertyDescriptor, ListSortDirection). |
| IBindingList.Find(PropertyDescriptor, Object) |
Eine Beschreibung dieses Mitglieds finden Sie unter Find(PropertyDescriptor, Object). |
| IBindingList.IsSorted |
Eine Beschreibung dieses Mitglieds finden Sie unter IsSorted. |
| IBindingList.RemoveIndex(PropertyDescriptor) |
Eine Beschreibung dieses Mitglieds finden Sie unter RemoveIndex(PropertyDescriptor). |
| IBindingList.RemoveSort() |
Eine Beschreibung dieses Mitglieds finden Sie unter RemoveSort(). |
| IBindingList.SortDirection |
Eine Beschreibung dieses Mitglieds finden Sie unter SortDirection. |
| IBindingList.SortProperty |
Eine Beschreibung dieses Mitglieds finden Sie unter SortProperty. |
| IBindingList.SupportsChangeNotification |
Eine Beschreibung dieses Mitglieds finden Sie unter SupportsChangeNotification. |
| IBindingList.SupportsSearching |
Eine Beschreibung dieses Mitglieds finden Sie unter SupportsSearching. |
| IBindingList.SupportsSorting |
Eine Beschreibung dieses Mitglieds finden Sie unter SupportsSorting. |
| IBindingListView.ApplySort(ListSortDescriptionCollection) |
Eine Beschreibung dieses Mitglieds finden Sie unter ApplySort(ListSortDescriptionCollection). |
| IBindingListView.Filter |
Eine Beschreibung dieses Mitglieds finden Sie unter Filter. |
| IBindingListView.RemoveFilter() |
Eine Beschreibung dieses Mitglieds finden Sie unter RemoveFilter(). |
| IBindingListView.SortDescriptions |
Eine Beschreibung dieses Mitglieds finden Sie unter SortDescriptions. |
| IBindingListView.SupportsAdvancedSorting |
Eine Beschreibung dieses Mitglieds finden Sie unter SupportsAdvancedSorting. |
| IBindingListView.SupportsFiltering |
Eine Beschreibung dieses Mitglieds finden Sie unter SupportsFiltering. |
| ICollection.IsSynchronized |
Eine Beschreibung dieses Mitglieds finden Sie unter IsSynchronized. |
| ICollection.SyncRoot |
Eine Beschreibung dieses Mitglieds finden Sie unter SyncRoot. |
| IList.Add(Object) |
Eine Beschreibung dieses Mitglieds finden Sie unter Add(Object). |
| IList.Clear() |
Eine Beschreibung dieses Mitglieds finden Sie unter Clear(). |
| IList.Contains(Object) |
Eine Beschreibung dieses Mitglieds finden Sie unter Contains(Object). |
| IList.IndexOf(Object) |
Eine Beschreibung dieses Mitglieds finden Sie unter IndexOf(Object). |
| IList.Insert(Int32, Object) |
Eine Beschreibung dieses Mitglieds finden Sie unter Insert(Int32, Object). |
| IList.IsFixedSize |
Eine Beschreibung dieses Mitglieds finden Sie unter IsFixedSize. |
| IList.IsReadOnly |
Eine Beschreibung dieses Mitglieds finden Sie unter IsReadOnly. |
| IList.Item[Int32] |
Eine Beschreibung dieses Mitglieds finden Sie unter Item[Int32]. |
| IList.Remove(Object) |
Eine Beschreibung dieses Mitglieds finden Sie unter Remove(Object). |
| IList.RemoveAt(Int32) |
Eine Beschreibung dieses Mitglieds finden Sie unter RemoveAt(Int32). |
| ITypedList.GetItemProperties(PropertyDescriptor[]) |
Eine Beschreibung dieses Mitglieds finden Sie unter GetItemProperties(PropertyDescriptor[]). |
| ITypedList.GetListName(PropertyDescriptor[]) |
Eine Beschreibung dieses Mitglieds finden Sie unter GetListName(PropertyDescriptor[]). |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| AsParallel(IEnumerable) |
Aktiviert die Parallelisierung einer Abfrage. |
| AsQueryable(IEnumerable) |
Wandelt eine IEnumerable in eine IQueryableum. |
| Cast<TResult>(IEnumerable) |
Wandelt die Elemente eines IEnumerable in den angegebenen Typ um. |
| OfType<TResult>(IEnumerable) |
Filtert die Elemente einer IEnumerable basierend auf einem angegebenen Typ. |
Gilt für:
Threadsicherheit
Dieser Typ ist für Multithread-Lesevorgänge sicher. Sie müssen alle Schreibvorgänge synchronisieren.