ADO.NET_第五篇_DataTable_09DataViewRowState

+++ 本例演示如何使用DataTable的DataViewRowState
protected void Page_Load(object sender, EventArgs e)
{
    // 创建一个只有一列的一个表,并添加十行
    DataTable dataTable = new DataTable("dataTable");
    DataColumn dataColumn = new DataColumn("dataColumn");
    dataTable.Columns.Add(dataColumn);
    DataRow dataRow;
    for (int i = 1; i < 6; i++)
    {
        dataRow = dataTable.NewRow();
        dataRow["dataColumn"] = "item_" + i;
        dataTable.Rows.Add(dataRow);
    }
    dataTable.AcceptChanges();
    foreach (DataRow dr in dataTable.Rows)
    {
        Response.Write(dr[0].ToString() + "</br>");
    }
    // 创建一个表的视图
    DataView dataView = new DataView(dataTable);
    // 改变第一行第一列的值,并添加一行
    dataTable.Rows[1]["dataColumn"] = "item_1 Hello"; // 修改的行
    dataRow = dataTable.NewRow(); // 增加的行
    dataRow["dataColumn"] = "item_World";
    dataTable.Rows.Add(dataRow);
    // 在视图中设置行状态过滤器,只显示增加和修改的行,再输出
    dataView.RowStateFilter = DataViewRowState.Added | DataViewRowState.ModifiedCurrent;
    PrintView(dataView, "ModifiedCurrent and Added Rows");
    // 在视图中设置过滤器,显示被修改行的原始行
    dataView.RowStateFilter = DataViewRowState.ModifiedOriginal;
    PrintView(dataView, "ModifiedOriginal Rows");
    // 删除三行
    dataTable.Rows[1].Delete();
    dataTable.Rows[2].Delete();
    dataTable.Rows[3].Delete();
    // 在视图中设置过滤器,只显示增加和修改的行
    dataView.RowStateFilter = DataViewRowState.Deleted;
    PrintView(dataView, "Deleted Rows");
    // 在视图中设置过滤器,仅显示当前
    dataView.RowStateFilter = DataViewRowState.CurrentRows;
    PrintView(dataView, "Current Rows");
    // 在视图中设置过滤器,只显示为改变的行
    dataView.RowStateFilter = DataViewRowState.Unchanged;
    PrintView(dataView, "Unchanged Rows");
    // 在视图中设置过滤器,只显示原始行
    dataView.RowStateFilter = DataViewRowState.OriginalRows;
    PrintView(dataView, "OriginalRows Rows");
}
private void PrintView(DataView dataView, string label)
{
    Response.Write("</br>" + label + ":</br>");
    for (int i = 0; i < dataView.Count; i++)
    {
        Response.Write(dataView[i]["dataColumn"] + "</br>");
    }
}
+++ 说明
1) DataViewRowState 是个枚举类型
None是无。
Unchanged是未更改的行。
Added是一个新行。
Deleted是已删除的行。
ModifiedCurrent是已修改的原始数据的当前版本。
ModifiedOriginal是已修改的数据的原始版本。
OriginalRows是包括未更改行和已删除行的原始行。
CurrentRows是包括未更改行、新行和已修改行的当前行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值