一直以来在对数据进行排序, 条件查询都是直接重复构建SQL来进行, 在查询次数和数据量不多的情况下倒没觉得什么, 但慢慢得, 当程序需要对大量数据椐不同条件进行多次查廛或排序时, 使用这种方式显然对程序的性能影响将会是十分明显的, 在网上找了一下, 发现DATAVIEW能很好的解决这个问题, 其提供了一种简单直观的方式来操作数据, 如下面代码:
SqlConnection conn = new SqlConnection("server=.;database=mydata;uid=sa;pwd=123456;");
conn.Open();
SqlDataAdapter adp = new SqlDataAdapter();
adp.SelectCommand = new SqlCommand("select * from goods",conn);
DataSet ds = new DataSet();
adp.Fill(ds, "goods"); //填充DataSet内存数扰库
Response.Write(ds.Tables[0].DefaultView.Count); //显增当前查询结果的总行数
ds.Tables[0].DefaultView.Sort = "GoodsID Desc"; //这里设定排序的字段及方式
ds.Tables[0].DefaultView.RowFilter = "Shopid = 1"; //设定过滤条件, 得到条件潢足为”ShopID =1 的所有数据”
this.GridView1.DataSource = ds.Tables[0]; //绑定到gridview数据源
this.GridView1.DataBind();
其中如果我们需要变更查询结结果, 例如得到所有goodsID字段大于10的数据, 则只需改变上面代码中的
ds.Tables[0].DefaultView.RowFilter = "Shopid = 1";
改为
ds.Tables[0].DefaultView.RowFilter = "goodsID > 10";
取可, 而不需要同数据库服务器进行更多的交互操作, 从而一定程度上加快程序的执行, 而代码也简结