请问如何把得到的DataTable放到缓存中去,在分页的时候Select这个DataTable。
并要保证这个缓存中的DataTabel在数据更新时即时更新。如何实现呢?谢谢!

解决方案 »

  1.   

    直接使用Cache对象就可以了。
    Cache["DataTable"] = dt; //dt是你的DataTable的实例在发生数据库更新时,更新Cache中这个"DataTable"就可以了。if( HttpContext.Cache["DataTable"] != null )
       DataTable dt = (DataTable)HttpContext.Cache["DataTable"];
      

  2.   

    用catch就可以读的时候强制转换一下
    发生数据库更新时,更新Cache中这个"DataTable"就可以了
      

  3.   

    在一个页面的时候也可以考虑viewstate
      

  4.   

    用一个static变量好使
    跟缓存的作用类似
    但是是所有用户共享的
    操作起来也方便
      

  5.   

    谢谢大家。向缓存里写的时候是不是要有个key,拿什么做key呢?
      

  6.   

    这个Key,可以放到配置文件里。工程里统一就可以了。
      

  7.   

    多谢回复.放到配置文件里多个用户的话无法区分吧,key即要保证缓存中的唯一性,又要标识出每个用户只能得到自己的最新DataTable,这样放到配置文件里不合适吧。
      

  8.   

    用session就能把多个用户区分开了啊!
      

  9.   

    Session是可以区分用户,但是如果用Session的话能并不能在Cache里区分是哪个DataTabel,这个很重要,因为一个用户在同一个会话里一个不止有一个DataTable需要缓存,所以用会话ID也不行。。
      

  10.   

    @time_is_life(今夜太冷) 我认为静态变量是个魔鬼,尽量不要去碰它。