zoukankan      html  css  js  c++  java
  • cache初接触,并利用了DataView

    我们在写代码的时候,如果数据控件要获得数据,一般方法,
                Conn.Open();
                OleDbCommand cmd;
                cmd = new OleDbCommand(sql, Conn);
                GridView1.DataSource = dbcenter.accessGetDataSet(sql);
                GridView1.DataBind();
             Conn.close();
    但如果多个数据控件要绑定数据,则比较频繁打开数据库,效率一定大打折扣了。
    所以我们要用上cache,并巧妙利用DataView 获取数据
    原来代码
    string sql = "select * from dbs where inf_type='ok' order by news_no desc";
             string sql2 = "select * from dbs where inf_type='chinese' order by news_no desc";
             string sql3 = "select * from dbs where inf_type='english' order by news_no desc";
              string sql4.....
    OleDbConnection Conn = cs.Acce_Conn();
    Conn.Open();
                OleDbCommand cmd;
                cmd = new OleDbCommand(sql, Conn);
                GridView1.DataSource = cs.accessGetDataSet(sql);
                GridView1.DataBind();
                GridView2.DataSource = cs.accessGetDataSet(sql2);
                GridView2.DataBind();
                GridView3.DataSource = cs.accessGetDataSet(sql3);
                GridView3.DataBind();
                GridView4.DataSource = cs.accessGetDataSet(sql4);
                GridView4.DataBind();
                ...........
     if(Conn.State ==ConnectionState.Open )//如果还打开就关闭
            {
                Conn.Close();
            }

    修改后

                OleDbConnection Conn = cs.Acce_Conn();
                string strSQL = "select * from dbs order by news_no desc ";
                DataSet ds = null;//定义DataSet ds

                if (Cache["cache_default"] == null)   //
                {
                    ds = dbcenter.accessGetDataSet(strSQL);
                    Cache.Insert("cache_default", ds, null, DateTime.Now.AddMinutes(60), TimeSpan.Zero);
                }
                ds = (DataSet)Cache["cache_default"];// 每次读取从cache获得,速度快
                
                DataView DV = ds.Tables[0].DefaultView;//获得表视图

                DataView dv1 = DV;
                DV.RowFilter = "inf_type='ok'";//用过滤rowfilter
                GridView1.DataSource = dv1;
                GridView1.DataBind();

                DataView dv2 = DV;
                DV.RowFilter = "inf_type='chinese'";
                GridView2.DataSource = dv2;
                GridView2.DataBind();

                DataView dv3 = DV;
                DV.RowFilter = "inf_type='english'";
                GridView3.DataSource = dv3;
                GridView3.DataBind();
    .................
               
    if(Conn.State ==ConnectionState.Open )//如果还打开就关闭
            {
                Conn.Close();
            }

    //详细见default_hhh_school,特别感谢小西指导.

  • 相关阅读:
    15款优秀移动APP产品原型设计工具
    成都Uber优步司机奖励政策(1月9日)
    北京Uber优步司机奖励政策(1月9日)
    滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(1月9日)
    成都Uber优步司机奖励政策(1月8日)
    北京Uber优步司机奖励政策(1月8日)
    滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(1月8日)
    优步UBER司机全国各地最新奖励政策汇总(持续更新...)
    成都Uber优步司机奖励政策(1月7日)
    北京Uber优步司机奖励政策(1月7日)
  • 原文地址:https://www.cnblogs.com/pyman/p/1547866.html
Copyright © 2011-2022 走看看