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显示。
- ADO.NET_第五篇_DataTable_08DataView
- ADO.NET_第五篇_DataTable_01
- ADO.NET_第五篇_DataTable_04Merge
- ADO.NET_第五篇_DataTable_05Select
- ADO.NET_第五篇_DataTable_06Compute
- ADO.NET_第五篇_DataTable_07Relations
- ADO.NET_第五篇_DataTable_09DataViewRowState
- ADO.NET_第五篇_DataTable_03Copy/Clone
- ADO.NET_第四篇_OracleDataReader
- ADO.NET_第六篇_DataSet
- ADO.NET_第七篇_OracleCommand_01ExecuteNonQuery
- ADO.NET_第七篇_OracleCommand_02ExecuteReader
- ADO.NET_第七篇_OracleCommand_03ExecuteScalar
- ADO.NET_第七篇_OracleCommand_04DataSet
- ADO.NET_第九篇_OracleHelper
- ADO.NET_第二篇_OracleConnection/OracleCommand
- ADO.NET_第十篇_Using关键字
- ADO.NET_介绍
- ADO.NET_第五篇_DataTable_05Select
- pplication Fundamentals——应用程序基础知识
- ADO.NET_第五篇_DataTable_06Compute
- 转:优秀程序员的45个习惯
- ADO.NET_第五篇_DataTable_07Relations
- ADO.NET_第五篇_DataTable_08DataView
- C++string类常用函数
- 大家好
- test
- ADO.NET_第五篇_DataTable_09DataViewRowState
- blog搬了
- ADO.NET_第六篇_DataSet
- 如何解决VC中的警告warning C4251 needs to have dll-interface
- 今天有人告诉我 不喜欢我是因为她喜欢帅哥