DataViewRowState 枚举   
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
描述 DataRow 中的数据版本。
此枚举支持其成员值的按位组合。
public enum class DataViewRowState[System.Flags]
public enum DataViewRowState[<System.Flags>]
type DataViewRowState = Public Enum DataViewRowState- 继承
- 属性
字段
| 名称 | 值 | 说明 | 
|---|---|---|
| Added | 4 | 新行。 | 
| CurrentRows | 22 | 当前行包括未更改的行、新行和已修改的行。 默认情况下,DataViewRowState 设置为 CurrentRows。 | 
| Deleted | 8 | 已删除的行。 | 
| ModifiedCurrent | 16 | 已修改的原始数据的当前版本(请参阅  | 
| ModifiedOriginal | 32 | 已修改数据的原始版本。 (尽管已修改此数据,它仍作为  | 
| None | 0 | 无。 | 
| OriginalRows | 42 | 原始行包括未更改的行和已删除的行。 | 
| Unchanged | 2 | 未更改的行。 | 
示例
在以下示例 DataTable 中,使用单个列创建。 数据已更改,并且 RowStateFilter 的 DataView 设置为显示不同的行集,具体取决于 DataViewRowState。
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"]);
    }
}
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
注解
这些 DataViewRowState 值用于从 DataRow中检索特定版本的数据,或用于确定存在哪些版本。
RowStateFilter设置 的 DataView 属性以指定要查看的数据版本。
可以将布尔运算符 Or 与值结合使用来获取多个版本。
在 DataTable 方法中使用 DataViewRowStateSelect 。