创建DataView对象:
创建DataView的方法有两种:可以使用DataView构造函数。也可以创建对DataTable的DefaultView属性的引用.
例如:
DataView dv=new DataView(table);
DataView dv=table.DefaultView;
由于在创建DataView时以及在修改任何Sort,RowFilter或RowStateFilter属性都会生成DataView的索引,所以当创建DataView时,通过以构造函数的形式提供任何初始排序顺序或筛选条件,可以实现最佳性能。如果在不指定排序或筛选条件的情况下创建DataView,然后设置Sort,RowFilter或RowStateFilter属性,这会使索引至少生成两次:一次是在创建DataView时,另一次是在修改任何排序或者筛选条件时。
DataView的一个主要功能是允许在Window窗体和Web窗体上进行数据绑定。
若要创建数据筛选和排序视图,可以设置RowFilter和Sort属性,然后使用Item属性返回单个DataRowView还可以使用AddNew和Delete方法从行的集合中进行添加和删除。在使用这些方法时,可设置RowStateFilter属性以便指定只有已被删除的行或新行才可由DataView显示。
注意:
DataView dv=new DataView(ds.Tables["student"]);
也可以写成:DataView dv=ds.Tables["student"].DefaultView;
一:取出筛选的符合条件记录的条数
DataView mydv = new DataView();
mydv = DataSet1.Tables[0].DefaultView;
mydv.RowFilter = "分数>=50";
int count = mydv.Count;
//上面的代码取出DataSet1中符合条件"分数>=50"的记录的条数。
二:显示符合条件的记录表
DataView mydv = new DataView();
mydv = DataSet1.Tables[0].DefaultView;
mydv.RowFilter = "分数>=50";
GridView1.DataSource = mydv;
GridView1.DataBind();
//上面的代码取出DataSet1中符合条件"分数>=50"的记录并在gridview1中显示出来。
三:直接使用符合条件记录的值
常见的错误写法:
DataView mydv = new DataView();
mydv = DataSet1.Tables[0].DefaultView;
mydv.RowFilter = "学号=50";
Label1.Text= mydv.Table.Rows[0]["分数"].ToString();
//mydv.Table里面表的值是原始表的值,并不是条件筛选后的表的值。
一种正确的写法:
DataView mydv = new DataView();
mydv = DataSet1.Tables[0].DefaultView;
mydv.RowFilter = "学号=50";
Label1.Text= mydv.ToTable("table1").Rows[0]["分数"].ToString();
//通过把mydv转换成表,再从表中取记录就是经过条件筛选的记录了。