ADO.NET_第五篇_DataTable_08DataView

来源:互联网 发布:光纤有网络连不上 编辑:程序博客网 时间:2024/04/29 19:19

+++ 本例演示如何使用DataTable 的DataView类
protected void Page_Load(object sender, EventArgs e)
{
    // 创建一个只有一行的表,并添加五行
    DataTable table = new DataTable("table");
    DataColumn colItem = new DataColumn("item",Type.GetType("System.String"));
    table.Columns.Add(colItem);
    DataRow NewRow;
    for (int i = 0; i < 5; i++)
    {
        NewRow = table.NewRow();
        NewRow["item"] = "Item_" + i;
        table.Rows.Add(NewRow);
    }
    // 改变表的前两行
    table.Rows[0]["item"] = "cat";
    table.Rows[1]["item"] = "dog";
    table.AcceptChanges();
    // 用这个表创建两个视图
    DataView firstView = new DataView(table);
    DataView secondView = new DataView(table);
    // 输出表的当前值
    PrintTableOrView(table, "Current Values in Table");
    // 设置第一个视图只显示被修改的行,并输出
    firstView.RowStateFilter = DataViewRowState.ModifiedOriginal;
    PrintTableOrView(firstView, "First DataView: ModifiedOriginal");
    // 向第二个视图增加一行
    DataRowView rowView;
    rowView = secondView.AddNew();
    rowView["item"] = "fish";
    // 设置第二个视图只显示被修改和增加的版本,并输出
    secondView.RowStateFilter = DataViewRowState.ModifiedCurrent | DataViewRowState.Added;
    PrintTableOrView(secondView,"Second DataView: ModifiedCurrent | Added");
}
private void PrintTableOrView(DataTable table, string label)
{
    Response.Write(" " + label + " ");
    for (int i = 0; i < table.Rows.Count; i++)
    {
        Response.Write(table.Rows[i]["item"] + " ");
    }
}
private void PrintTableOrView(DataView view, string label)
{
    Response.Write(" " + label + " ");
    for (int i = 0; i < view.Count; i++)
    {
        Response.Write(view[i]["item"] + " ");
    }
}
+++ 说明
1) DataView 类很有用,主要用于排序、筛选、搜索、编辑和导航DataTable中可绑定数据的自定义视图;
2) DataView 的一个主要功能是允许在Windows窗体和Web窗体上进行数据绑定;
3) 可自定义DataView来表示DataTable中数据的子集。此功能让你拥有绑定到同一DataTable、但显示不同数据版本的两个控件;
4) 若要创建数据的筛选和排序视图,请设置DataView的RowFilter和Sort属性。然后,使用Item属性返回单个DataRowView。
5) 还可使用DataView的AddNew和Delete方法从行的集合中进行添加和删除。在使用这些方法时,可设置RowStateFilter属性以便指定只有已被删除的行或新行才可由DataView显示。

原创粉丝点击