DataView.RowStateFilter 属性

rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"> rel="Edit-Time-Data" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_editdata.mso">

命名空间:  System.Data
程序集:  System.Data(在 System.Data.dll 中)

 语法

Visual Basic(声明)

Public Property RowStateFilter As DataViewRowState

Visual Basic (用法)

Dim instance As DataView

Dim value As DataViewRowState

 

value = instance.RowStateFilter

 

instance.RowStateFilter = value

C#

public DataViewRowState RowStateFilter { get; set; }

rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"> rel="Edit-Time-Data" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_editdata.mso">

只有已通过 Delete 方法删除的行的 RowStateFilter 值才会设置为 Deleted。同样,那些通过 AddNew 法添加的行将同样把该属性设置为 Added

说明:

使用 DataRowCollection 类的 Remove 方法并不意味着行将被标记为 Deleted。请改为使用 Delete 方法,以确保可在 DataView 中查看这样的行。

如果将 RowStateFilter 设置为 ModifiedCurrent 或 CurrentRows,新行也将是可见的。

如果将 RowStateFilter 设置为 ModifiedOriginal 和 OriginalRows,已删除的行也将是可见的。

 示例

下面的示例创建具有单个列的 DataTable,然后更改数据并设置 DataView 的 RowStateFilter,以便根据 DataViewRowState 显示不同的行集。

rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml">

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"]);
  
  
    }
  
  
}
  
  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值