Freigeben über


DataViewRowState-Enumeration

Beschreibt die Version der Daten in einer DataRow-Klasse.

Diese Enumeration verfügt über ein FlagsAttribute -Attribut, das die bitweise Kombination der Memberwerte zulässt.

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

Syntax

'Declaration
<FlagsAttribute> _
Public Enumeration DataViewRowState
'Usage
Dim instance As DataViewRowState
[FlagsAttribute] 
public enum DataViewRowState
[FlagsAttribute] 
public enum class DataViewRowState
/** @attribute FlagsAttribute() */ 
public enum DataViewRowState
FlagsAttribute 
public enum DataViewRowState

Member

  Membername Beschreibung
Unterstützt von .NET Compact Framework Added Eine neue Zeile. 
Unterstützt von .NET Compact Framework CurrentRows Aktuelle Zeilen, einschließlich unveränderter, neuer und geänderter Zeilen. 
Unterstützt von .NET Compact Framework Deleted Eine gelöschte Zeile. 
Unterstützt von .NET Compact Framework ModifiedCurrent Eine aktuelle Version, die eine geänderte Version der ursprünglichen Daten ist (siehe ModifiedOriginal). 
Unterstützt von .NET Compact Framework ModifiedOriginal Die ursprüngliche Version (obwohl sie inzwischen geändert wurde und als ModifiedCurrent verfügbar ist). 
Unterstützt von .NET Compact Framework None Keine. 
Unterstützt von .NET Compact Framework OriginalRows Ursprüngliche Zeilen, einschließlich unveränderter und gelöschter Zeilen. 
Unterstützt von .NET Compact Framework Unchanged Eine unveränderte Zeile. 

Hinweise

Die DataViewRowState-Werte werden entweder zum Abrufen einer bestimmten Version von Daten aus einer DataRow-Klasse oder zum Bestimmen der vorhandenen Versionen verwendet.

Legen Sie die RowStateFilter-Eigenschaft von DataView fest, um zu bestimmen, welche Version bzw. Versionen von Daten angezeigt werden soll bzw. sollen.

Sie können den booleschen Operator OR mit den Werten verwenden, um mehrere Versionen abzurufen.

Die DataTable-Klasse verwendet DataViewRowState in der Select-Methode.

Beispiel

Im folgenden Beispiel wird eine DataTable-Klasse mit einer einzigen Spalte erstellt. Die Daten werden geändert, und die RowStateFilter-Eigenschaft der DataView-Klasse wird so festgelegt, dass abhängig von der DataViewRowState-Enumeration verschiedene Rowsets angezeigt werden.

Private Sub DemonstrateRowState()
    Dim i As Integer

    ' Create a DataTable with one column.
    Dim dataTable As New DataTable("dataTable")
    Dim dataColumn As New DataColumn("dataColumn")
    dataTable.Columns.Add(dataColumn)

    ' Add ten rows.
    Dim dataRow As DataRow
    For i = 0 To 9
        dataRow = dataTable.NewRow()
        dataRow("dataColumn") = "item " + i.ToString()
        dataTable.Rows.Add(dataRow)
    Next i
    dataTable.AcceptChanges()

    ' Create a DataView with the table.
    Dim dataView As New DataView(dataTable)

    ' Change one row's value:
    dataTable.Rows(1)("dataColumn") = "Hello"

    ' Add one row:
    dataRow = dataTable.NewRow()
    dataRow("dataColumn") = "World"
    dataTable.Rows.Add(dataRow)

    ' Set the RowStateFilter to display only Added and modified rows.
    dataView.RowStateFilter = _
    DataViewRowState.Added Or DataViewRowState.ModifiedCurrent

    ' Print those rows. Output = "Hello" "World";
    PrintView(dataView, "ModifiedCurrent and Added")

    ' Set filter to display on originals of modified rows.
    dataView.RowStateFilter = DataViewRowState.ModifiedOriginal
    PrintView(dataView, "ModifiedOriginal")

    ' Delete three rows.
    dataTable.Rows(1).Delete()
    dataTable.Rows(2).Delete()
    dataTable.Rows(3).Delete()

    ' Set the RowStateFilter to display only Added and modified rows.
    dataView.RowStateFilter = DataViewRowState.Deleted
    PrintView(dataView, "Deleted")

    'Set filter to display only current.
    dataView.RowStateFilter = DataViewRowState.CurrentRows
    PrintView(dataView, "Current")

    ' Set filter to display only unchanged rows.
    dataView.RowStateFilter = DataViewRowState.Unchanged
    PrintView(dataView, "Unchanged")

    ' Set filter to display only original rows.
    dataView.RowStateFilter = DataViewRowState.OriginalRows
    PrintView(dataView, "OriginalRows")
End Sub

Private Sub PrintView(ByVal dataView As DataView, ByVal label As String)
    Console.WriteLine(ControlChars.Cr + label)
    Dim i As Integer
    For i = 0 To dataView.Count - 1
        Console.WriteLine(dataView(i)("dataColumn"))
    Next i
End Sub
static private void DemonstrateRowState()
{
    // Create a DataTable with one column.
    DataTable dataTable = new DataTable("dataTable");
    DataColumn dataColumn = new DataColumn("dataColumn");
    dataTable.Columns.Add(dataColumn);

    // Add ten rows.
    DataRow dataRow;
    for (int i = 0; i < 10; i++)
    {
        dataRow = dataTable.NewRow();
        dataRow["dataColumn"] = "item " + i;
        dataTable.Rows.Add(dataRow);
    }
    dataTable.AcceptChanges();

    // Create a DataView with the table.
    DataView dataView = new DataView(dataTable);

    // Change one row's value:
    dataTable.Rows[1]["dataColumn"] = "Hello";

    // Add one row:
    dataRow = dataTable.NewRow();
    dataRow["dataColumn"] = "World";
    dataTable.Rows.Add(dataRow);

    // Set the RowStateFilter to display only added and modified rows.
    dataView.RowStateFilter = DataViewRowState.Added
        | DataViewRowState.ModifiedCurrent;

    // Print those rows. Output = "Hello" "World";
    PrintView(dataView, "ModifiedCurrent and Added");

    // Set filter to display on originals of modified rows.
    dataView.RowStateFilter = DataViewRowState.ModifiedOriginal;
    PrintView(dataView, "ModifiedOriginal");

    // Delete three rows.
    dataTable.Rows[1].Delete();
    dataTable.Rows[2].Delete();
    dataTable.Rows[3].Delete();

    // Set the RowStateFilter to display only Added and modified rows.
    dataView.RowStateFilter = DataViewRowState.Deleted;
    PrintView(dataView, "Deleted");

    //Set filter to display only current.
    dataView.RowStateFilter = DataViewRowState.CurrentRows;
    PrintView(dataView, "Current");

    // Set filter to display only unchanged rows.
    dataView.RowStateFilter = DataViewRowState.Unchanged;
    PrintView(dataView, "Unchanged");

    // Set filter to display only original rows.
    dataView.RowStateFilter = DataViewRowState.OriginalRows;
    PrintView(dataView, "OriginalRows");
}


static private void PrintView(DataView dataView, string label)
{
    Console.WriteLine("\n" + label);
    for (int i = 0; i < dataView.Count; i++)
    {
        Console.WriteLine(dataView[i]["dataColumn"]);
    }
}

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

System.Data-Namespace
DataRow-Klasse
DataView-Klasse
DataView-Klasse
Select