大家好之前开发一个应用,会有不同的人从数据取出,显示在GridView上然后直接对其做修改的。GridView的数据初始根据各人所属(各人标记)的数据显示出来(就是说每人看到的都只是自己的数据)还有一些筛选的功能(因为数据可能比较多).这些数据有一个筛选的条件是“等级”(A B C D E)
今天发现问题来了。甲君在筛选的时候 数据突然变成乙君的数据了!!!!我当时在两台电脑上做测试 甲的电脑 和 乙的电脑 都登录到这个应用 获取相应的数据 然后操作甲的电脑筛选等级。(正常) 然后跑去乙那筛选数据  出来的筛选过等级的数据是甲的数据!!!!后台我是这样写的第一次登录的时候 默认读取一次数据 然后把数据保存在Cache里面筛选的时候把Cache的数据调出来 放到一个DataView里面再用filter筛选dataView的数据最终显示在GridView上。。
各位大大 请帮我看看 我这是哪里出了问题。。是Cache 还是 DataView的问题。为什么会这样呢?

解决方案 »

  1.   

    c/s 还是 b/s 一般筛选用数据库查询就好了呗~ 或者,注意下public的用法
      

  2.   

    因为cache是全局的
    Cache的名字最好唯一 每个用户建立独立的cache 
    Cache.Add(UserName + "cachname")
      

  3.   


    那么不能用Cache的话 是不是意味着必须再做一次查询呢?有其他办法吗?
      

  4.   

    你应该是根据搜索条件把不同的数据存在不同的cache里
    取值时优先找cache,没有再查数据库还有你有没有做数据源分页,一次顶多取几十条数据怎么会慢呢