街角转弯处

用行动向世界证明存在的价值, 用实力打造真实的生命寓言.
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

初尝DataView

Posted on 2007-04-26 15:15  马路灯  阅读(461)  评论(0编辑  收藏  举报
 

         一直以来在对数据进行排序, 条件查询都是直接重复构建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";

取可, 而不需要同数据库服务器进行更多的交互操作, 从而一定程度上加快程序的执行, 而代码也简结