3 von 8 fanden dies hilfreich - Dieses Thema bewerten.

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)

public class DataView : 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

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.

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

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

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.

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)