DataView:可以说是一个视图,是在程序里的一个视图,它是数据源的一个视图,当我们成功拥有这个视图之后,可以利用各种筛选从视图中查询到有用的数据,反馈给用户
要想了解一个东西得看的源头喽,下面看微软的官方解释
三个构造函数:
DataView() 初始化 DataView 类的新实例。
DataView(DataTable) 使用指定的 DataView 初始化 DataTable 类的新实例。
DataView(DataTable, String, String, DataViewRowState)
使用指定的 DataTable、RowFilter、Sort 和 DataViewRowState 初始化 DataView 类的新实例。
<span style="color:#ff0000;">RowStateFilter</span>
RowStateFilter:对视图的筛选控制,主要是对数据源的一些操作筛选
Sort:视图筛选器,主要是一些关于数据条件的限制
下面说一些关于RowStateFilter的使用
生成一个数据源
DataTable dataTable = new DataTable("dataTable");
DataColumn 地方 = new DataColumn ("地方"); //先生成一个列
dataTable.Columns.Add(地方); //加载列到dt中
DataRow dataRow;
for(int i=0;i<10;i++) //循环加载行到dt中
{
dataRow = dataTable.NewRow();
dataRow["地方"] = new string[] {" 1", "2", "3", "4", "5"};
dataTable.Rows.Add(dataRow);
}
提交数据源后,在对数据源进行修改
dataTable.AcceptChanges(); //必须有这行代码,否则一下的<span style="font-family: Arial, Helvetica, sans-serif;">RowStateFilter将不起作用。</span>
//create a DataView with the table
DataView dv = new DataView(dataTable);
//change one row's value
dataTable.Rows[1]["地方"] = "Hello";
//Add one row
dataRow = dataTable.NewRow();
dataRow["地方"] = "Word";
dataTable.Rows.Add(dataRow);
dv.RowStateFilter = DataViewRowState.Added | DataViewRowState.ModifiedCurrent;
dataTable.Rows[1].Delete();
dataTable.Rows[2].Delete();
dataTable.Rows[3].Delete();
RowStateFilter的使用
<span style="color:#ff0000;"> dataTable.Rows[4]["地方"] = "jjjjj";
//设置dataview显示的过滤条件,下面的条件是只显更改行与新行、已修改行、当前行
//dv.RowStateFilter = DataViewRowState.CurrentRows;
//this.GridView1 .DataSource = dv ;
//this.GridView1 .DataBind();
//设置dataview显示的过滤条件,未更改的行
//dv.RowStateFilter = DataViewRowState.Unchanged;
// this.GridView1 .DataSource = dv ;
// this.GridView1 .DataBind();
// //设置dataview显示的过滤条件,未更改行,已删除行
dv.RowStateFilter = DataViewRowState.Deleted;
this.GridView1.DataSource = dv;
this.GridView1.DataBind();</span>
Sort的使用:使用该条件时要注意数据类型。
DataView dv = new DataView( DataTable);
c = "Convert(pID,'System.String') like '%'"; //筛选器,这块和数据库SQL条件语句极为相似,同出一家。
dv.RowFilter = c; // <span style="font-family: Arial, Helvetica, sans-serif;">Convert(pID,'System.String') 把pID列转换为string类型</span> dv.Sort = "pID desc"; //对pID列进行排序
this.GridView1.DataSource = dv;
this.GridView1.DataBind();
总结:一直以来以为DataView是一个控件,原来是一个对象。其中这个对象还有很多的属性和方法需要去学习。总之,遇到了就得去用。就学习了。有其他观点和要分享的,积极探讨啊。