Freigeben über


DataView-Klasse

Stellt eine datenbindungsfähige, angepasste Ansicht einer DataTable zum Sortieren, Filtern, Durchsuchen, Bearbeiten und Navigieren dar.

Namespace: System.Data
Assembly: System.Data (in system.data.dll)

Syntax

'Declaration
Public Class DataView
    Inherits MarshalByValueComponent
    Implements IBindingListView, IBindingList, IList, ICollection, _
    IEnumerable, ITypedList, ISupportInitializeNotification, ISupportInitialize
'Usage
Dim instance As DataView
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
public class DataView extends MarshalByValueComponent implements IBindingListView, IBindingList, 
    IList, ICollection, IEnumerable, ITypedList, ISupportInitializeNotification, 
    ISupportInitialize
public class DataView extends MarshalByValueComponent implements IBindingListView, IBindingList, 
    IList, ICollection, IEnumerable, ITypedList, ISupportInitializeNotification, 
    ISupportInitialize

Hinweise

Eine Hauptfunktion der DataView besteht darin, die Datenbindung für Windows Forms und Web Forms zu ermöglichen.

Darüber hinaus kann eine DataView so angepasst werden, dass sie eine Teilmenge der Daten aus der DataTable darstellt. Durch diese Fähigkeit können Sie mit zwei Steuerelementen arbeiten, die an dieselbe DataTable gebunden sind, aber verschiedene Versionen der Daten anzeigen. Ein Steuerelement kann z. B. an eine DataView gebunden sein, in der alle Zeilen in der Tabelle angezeigt werden, und ein zweites so konfiguriert ist, dass nur die aus der DataTable gelöschten Zeilen angezeigt werden. Die DataTable besitzt außerdem ein DefaultView-Ereignis. Diese gibt den Standard-DataView für die Tabelle zurück. Wenn Sie z. B. eine benutzerdefinierte Ansicht für die Tabelle erstellen möchten, legen Sie den RowFilter auf den DataView fest, der von DefaultView zurückgegeben wird.

Um eine gefilterte und sortierte Ansicht der Daten zu erstellen, legen Sie die RowFilter-Eigenschaft und die Sort-Eigenschaft fest. Geben Sie anschließend mit der Item-Eigenschaft eine einzelne DataRowView zurück.

Mithilfe der AddNew-Methode und der Delete-Methode können Sie dem Zeilenset auch Zeilen hinzufügen bzw. sie daraus löschen. Bei Verwendung dieser Methoden kann die RowStateFilter-Eigenschaft so festgelegt werden, dass durch den DataView nur gelöschte Zeilen oder neue Zeilen angezeigt werden.

Beispiel

Im folgenden Beispiel wird eine einzelne DataTable mit einer Spalte und fünf Zeilen erstellt. Es werden zwei DataView-Objekte erstellt, und für beide wird der RowStateFilter festgelegt, sodass sie verschiedene Ansichten der Tabellendaten anzeigen. Anschließend werden die Werte ausgegeben.

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();
}

Vererbungshierarchie

System.Object
   System.ComponentModel.MarshalByValueComponent
    System.Data.DataView

Threadsicherheit

Dieser Typ ist bei Multithread-Lesevorgängen sicher. Sie müssen alle Schreibvorgänge synchronisieren.

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

DataView-Member
System.Data-Namespace
DataSet-Klasse
DataTable-Klasse
DataViewManager