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 an Daten bindbare, benutzerdefinierte Ansicht einer DataTable zum Sortieren, Filtern, Durchsuchen, Bearbeiten und Navigieren dar. DataView speichert keine Daten, sondern stellt stattdessen eine verbundene Ansicht der entsprechenden DataTable dar. Änderungen an den Daten von DataView wirken sich auf DataTable aus. Änderungen an den Daten von DataTable wirken sich auf alle DataView-Ansichten aus, die dieser zugeordnet sind.
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
type DataView = class
inherit MarshalByValueComponent
interface IBindingListView
interface ITypedList
interface ISupportInitializeNotification
interface IBindingList
interface IList
interface ICollection
interface IEnumerable
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 eine Einzelne DataTable mit einer Spalte und fünf Zeilen erstellt. Es werden zwei DataView Objekte erstellt, die RowStateFilter jeweils festgelegt sind, um unterschiedliche Ansichten der Tabellendaten anzuzeigen. 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" + 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();
}
}
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 Onlinebestellung erstellt, die von einer LINQ to DataSet Abfrage insgesamt bestellt wurde:
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 für Windows Forms als auch für Web Forms zu ermöglichen.
Darüber hinaus kann eine DataView angepasst werden, um eine Teilmenge von Daten aus dem DataTable. Mit dieser Funktion können Sie zwei Steuerelemente an denselben DataTableGebundenen haben, jedoch verschiedene Versionen der Daten anzeigen. Ein Steuerelement kann beispielsweise an ein DataView Steuerelement gebunden sein, das alle Zeilen in der Tabelle anzeigt, und ein zweites Steuerelement kann so konfiguriert werden, dass nur die Zeilen angezeigt werden, die aus der DataTableTabelle gelöscht wurden. Das DataTable hat auch eine DefaultView Eigenschaft. Dadurch wird die Standardeinstellung DataView für die Tabelle zurückgegeben. Wenn Sie z. B. eine benutzerdefinierte Ansicht in der Tabelle erstellen möchten, legen Sie die RowFilter von DataView der DefaultViewTabelle zurückgegebene Ansicht fest.
Um eine gefilterte und sortierte Ansicht von Daten zu erstellen, legen Sie die und Sort die RowFilter 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 festlegen, dass nur gelöschte Zeilen oder neue Zeilen von der DataView.
Hinweis
Wenn Sie nicht explizit Sortierkriterien DataView
für angeben, werden die DataRowView
objekte DataView
in der entsprechenden Datenansicht anhand des Indexes der DataView DataRow
sortiert DataTable.Rows
DataRowCollection
.
LINQ to DataSet ermöglicht Entwicklern das Erstellen komplexer, leistungsstarker Abfragen mithilfe DataSet von LINQ. Eine LINQ to DataSet Abfrage gibt jedoch eine Aufzählung von DataRow Objekten zurück, die in einem Bindungsszenario nicht einfach verwendet wird. DataViewkann aus einer LINQ to DataSet Abfrage erstellt und die Filter- und Sortiereigenschaften dieser Abfrage verwendet werden. LINQ to DataSet erweitert die Funktionalität der DataView Funktion durch die Bereitstellung von LINQ-ausdrucksbasierter Filterung und Sortierung, wodurch komplexere und leistungsfähigere Filter- und Sortiervorgänge als zeichenfolgenbasierte Filter- und Sortierungsvorgänge ermöglicht werden. Weitere Informationen finden Sie unter "Datenbindung" und "LINQ to DataSet".
Konstruktoren
DataView() |
Initialisiert eine neue Instanz der DataView-Klasse. |
DataView(DataTable) |
Initialisiert eine neue Instanz der DataView-Klasse mit der angegebenen DataTable. |
DataView(DataTable, String, String, DataViewRowState) |
Initialisiert eine neue Instanz der DataView-Klasse mit den angegebenen DataTable, RowFilter, Sort und DataViewRowState. |
Eigenschaften
AllowDelete |
Ruft einen Wert ab, der angibt, ob Löschungen zulässig sind, oder legt diesen fest. |
AllowEdit |
Ruft einen Wert ab, der angibt, ob Bearbeitungen zulässig sind, oder legt diesen fest. |
AllowNew |
Ruft einen Wert ab, der angibt, ob die neuen Zeilen mithilfe der AddNew()-Methode hinzugefügt werden können, oder legt diesen fest. |
ApplyDefaultSort |
Ruft einen Wert ab, der angibt, ob die Standardsortierung verwendet werden soll, oder legt diesen Wert fest. Die Standardsortierung erfolgt nach allen Primärschlüsseln (in aufsteigender Reihenfolge), wie durch PrimaryKey angegeben. |
Container |
Ruft den Container für die Komponente ab. (Geerbt von MarshalByValueComponent) |
Count |
Ruft die Anzahl der Datensätze in DataView ab, nachdem RowFilter und RowStateFilter angewendet wurden. |
DataViewManager |
Ruft den DataViewManager ab, der dieser Ansicht zugeordnet ist. |
DesignMode |
Ruft einen Wert ab, der angibt, ob sich die Komponente gegenwärtig im Entwurfsmodus befindet. (Geerbt von MarshalByValueComponent) |
Events |
Ruft die Liste der an diese Komponente angefügten Ereignishandler ab. (Geerbt von MarshalByValueComponent) |
IsInitialized |
Ruft einen Wert ab, der angibt, ob die Komponente initialisiert wurde. |
IsOpen |
Ruft einen Wert ab, der angibt, ob die Datenquelle aktuell geöffnet ist und Ansichten der Daten in der DataTable projiziert. |
Item[Int32] |
Ruft eine Datenzeile aus einer angegebenen Tabelle ab. |
RowFilter |
Ruft den Ausdruck ab, mit dem die in DataView anzuzeigenden Zeilen gefiltert werden, oder legt diesen fest. |
RowStateFilter |
Dient zum Abrufen oder Festlegen des Zeilenstatusfilters, der in der DataView verwendet wird. |
Site |
Ruft die Site der Komponente ab oder legt sie fest. (Geerbt von MarshalByValueComponent) |
Sort |
Ruft die Sortierspalte(n) und die Sortierreihenfolge für die DataView ab oder legt sie fest. |
Table |
Ruft die Quell-DataTable ab oder legt sie fest. |
Methoden
AddNew() |
Fügt DataView eine neue Zeile hinzu. |
BeginInit() |
Startet die Initialisierung einer DataView, die in einem Formular oder von einer anderen Komponente verwendet wird. Die Initialisierung erfolgt zur Laufzeit. |
Close() |
Schließt die DataView-Klasse. |
ColumnCollectionChanged(Object, CollectionChangeEventArgs) |
Tritt auf, nachdem eine DataColumnCollection erfolgreich geändert wurde. |
CopyTo(Array, Int32) |
Kopiert die Elemente in ein Array. Nur für Web Forms-Schnittstellen. |
Delete(Int32) |
Löscht eine Zeile am angegebenen Index. |
Dispose() |
Gibt alle vom MarshalByValueComponent verwendeten Ressourcen frei. (Geerbt von MarshalByValueComponent) |
Dispose(Boolean) |
Löscht (außer den Speicherressourcen) alle Ressourcen, die vom DataView-Objekt verwendet werden. |
EndInit() |
Beendet die Initialisierung einer DataView, die in einem Formular oder von einer anderen Komponente verwendet wird. Die Initialisierung erfolgt zur Laufzeit. |
Equals(DataView) |
Stellt fest, ob die angegebenen DataView-Instanzen als gleich betrachtet werden. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
Find(Object) |
Sucht eine Zeile in der DataView anhand des angegebenen Sortierschlüsselwerts. |
Find(Object[]) |
Sucht eine Zeile in der DataView anhand der angegebenen Sortierschlüsselwerte. |
FindRows(Object) |
Gibt ein Array von DataRowView-Objekten zurück, dessen Spalten dem angegebenen Sortierschlüsselwert entsprechen. |
FindRows(Object[]) |
Gibt ein Array von DataRowView-Objekten zurück, dessen Spalten dem angegebenen Sortierschlüsselwert entsprechen. |
GetEnumerator() |
Ruft einen Enumerator für diese DataView ab. |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetService(Type) |
Ruft die Implementierung von IServiceProvider ab. (Geerbt von MarshalByValueComponent) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
IndexListChanged(Object, ListChangedEventArgs) |
Tritt auf, nachdem eine DataView erfolgreich geändert wurde. |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
OnListChanged(ListChangedEventArgs) |
Löst das ListChanged-Ereignis aus. |
Open() |
Öffnet eine DataView. |
Reset() |
Nur für die interne Verwendung vorgesehen. |
ToString() |
Gibt einen String zurück, der den Namen der Component enthält (sofern vorhanden). Diese Methode darf nicht überschrieben werden. (Geerbt von MarshalByValueComponent) |
ToTable() |
Erstellt eine neue DataTable basierend auf den Zeilen in einer vorhandenen DataView und gibt diese zurück. |
ToTable(Boolean, String[]) |
Erstellt eine neue DataTable basierend auf den Zeilen in einer vorhandenen DataView und gibt diese zurück. |
ToTable(String) |
Erstellt eine neue DataTable basierend auf den Zeilen in einer vorhandenen DataView und gibt diese zurück. |
ToTable(String, Boolean, String[]) |
Erstellt eine neue DataTable basierend auf den Zeilen in einer vorhandenen DataView und gibt diese zurück. |
UpdateIndex() |
Nur für die interne Verwendung vorgesehen. |
UpdateIndex(Boolean) |
Nur für die interne Verwendung vorgesehen. |
Ereignisse
Disposed |
Fügt einen Ereignishandler hinzu, der auf das Disposed-Ereignis für die Komponente lauscht. (Geerbt von MarshalByValueComponent) |
Initialized |
Tritt auf, wenn die Initialisierung von DataView abgeschlossen ist. |
ListChanged |
Tritt auf, wenn die von DataView verwaltete Liste geändert wird. |
Explizite Schnittstellenimplementierungen
IBindingList.AddIndex(PropertyDescriptor) |
Eine Beschreibung dieses Elements finden Sie unter AddIndex(PropertyDescriptor). |
IBindingList.AddNew() |
Eine Beschreibung dieses Elements finden Sie unter AddNew(). |
IBindingList.AllowEdit |
Eine Beschreibung dieses Elements finden Sie unter AllowEdit. |
IBindingList.AllowNew |
Eine Beschreibung dieses Elements finden Sie unter AllowNew. |
IBindingList.AllowRemove |
Eine Beschreibung dieses Elements finden Sie unter AllowRemove. |
IBindingList.ApplySort(PropertyDescriptor, ListSortDirection) |
Eine Beschreibung dieses Elements finden Sie unter ApplySort(PropertyDescriptor, ListSortDirection). |
IBindingList.Find(PropertyDescriptor, Object) |
Eine Beschreibung dieses Elements finden Sie unter Find(PropertyDescriptor, Object). |
IBindingList.IsSorted |
Eine Beschreibung dieses Elements finden Sie unter IsSorted. |
IBindingList.RemoveIndex(PropertyDescriptor) |
Eine Beschreibung dieses Elements finden Sie unter RemoveIndex(PropertyDescriptor). |
IBindingList.RemoveSort() |
Eine Beschreibung dieses Elements finden Sie unter RemoveSort(). |
IBindingList.SortDirection |
Eine Beschreibung dieses Elements finden Sie unter SortDirection. |
IBindingList.SortProperty |
Eine Beschreibung dieses Elements finden Sie unter SortProperty. |
IBindingList.SupportsChangeNotification |
Eine Beschreibung dieses Elements finden Sie unter SupportsChangeNotification. |
IBindingList.SupportsSearching |
Eine Beschreibung dieses Elements finden Sie unter SupportsSearching. |
IBindingList.SupportsSorting |
Eine Beschreibung dieses Elements finden Sie unter SupportsSorting. |
IBindingListView.ApplySort(ListSortDescriptionCollection) |
Eine Beschreibung dieses Elements finden Sie unter ApplySort(ListSortDescriptionCollection). |
IBindingListView.Filter |
Eine Beschreibung dieses Elements finden Sie unter Filter. |
IBindingListView.RemoveFilter() |
Eine Beschreibung dieses Elements finden Sie unter RemoveFilter(). |
IBindingListView.SortDescriptions |
Eine Beschreibung dieses Elements finden Sie unter SortDescriptions. |
IBindingListView.SupportsAdvancedSorting |
Eine Beschreibung dieses Elements finden Sie unter SupportsAdvancedSorting. |
IBindingListView.SupportsFiltering |
Eine Beschreibung dieses Elements finden Sie unter SupportsFiltering. |
ICollection.IsSynchronized |
Eine Beschreibung dieses Elements finden Sie unter IsSynchronized. |
ICollection.SyncRoot |
Eine Beschreibung dieses Elements finden Sie unter SyncRoot. |
IList.Add(Object) |
Eine Beschreibung dieses Elements finden Sie unter Add(Object). |
IList.Clear() |
Eine Beschreibung dieses Elements finden Sie unter Clear(). |
IList.Contains(Object) |
Eine Beschreibung dieses Elements finden Sie unter Contains(Object). |
IList.IndexOf(Object) |
Eine Beschreibung dieses Elements finden Sie unter IndexOf(Object). |
IList.Insert(Int32, Object) |
Eine Beschreibung dieses Elements finden Sie unter Insert(Int32, Object). |
IList.IsFixedSize |
Eine Beschreibung dieses Elements finden Sie unter IsFixedSize. |
IList.IsReadOnly |
Eine Beschreibung dieses Elements finden Sie unter IsReadOnly. |
IList.Item[Int32] |
Eine Beschreibung dieses Elements finden Sie unter Item[Int32]. |
IList.Remove(Object) |
Eine Beschreibung dieses Elements finden Sie unter Remove(Object). |
IList.RemoveAt(Int32) |
Eine Beschreibung dieses Elements finden Sie unter RemoveAt(Int32). |
ITypedList.GetItemProperties(PropertyDescriptor[]) |
Eine Beschreibung dieses Elements finden Sie unter GetItemProperties(PropertyDescriptor[]). |
ITypedList.GetListName(PropertyDescriptor[]) |
Eine Beschreibung dieses Elements finden Sie unter GetListName(PropertyDescriptor[]). |
Erweiterungsmethoden
Cast<TResult>(IEnumerable) |
Wandelt die Elemente eines IEnumerable in den angegebenen Typ um |
OfType<TResult>(IEnumerable) |
Filtert die Elemente eines IEnumerable anhand eines angegebenen Typs |
AsParallel(IEnumerable) |
Ermöglicht die Parallelisierung einer Abfrage. |
AsQueryable(IEnumerable) |
Konvertiert einen IEnumerable in einen IQueryable. |
Gilt für
Threadsicherheit
Dieser Typ ist für Multithread-Lesevorgänge sicher. Sie müssen alle Schreibvorgänge synchronisieren.