+++ 本例演示如何使用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显示。
ADO.NET_第五篇_DataTable_08DataView
最新推荐文章于 2022-04-14 20:29:01 发布