if (HttpContext.Current.Cache["web_repository"] != null)
{

DataSet ds = (DataSet)HttpContext.Current.Cache.Get("web_repository");
DataView dv = ds.Tables[0].DefaultView;
dv.RowFilter = "filetitle='公司工会慰问大修现场检修员工'";
dv.Sort = orderby + " " + order;

return dv;
}感觉dataview完全乱套了,不管过滤条件是什么,取出来的东西都是驴头不对马嘴,上面的代码过滤文章标题是 公司工会慰问大修现场检修员工 的记录,出来的却是另外一条记录,可是如果从数据库直接取出来再进行过滤就正常,问题肯定是出在DataSet ds = (DataSet)HttpContext.Current.Cache.Get("web_repository");这一句,可是问题到底是什么呢?!

解决方案 »

  1.   

    代码我写在另外一个帖子里了,能解决200分送上
    http://topic.csdn.net/u/20090710/11/5dd8d7d4-9918-4e32-b58c-73b88362df92.html?13396
      

  2.   

    忘记说了,我用的是asp.net1.1 vs2003
      

  3.   

    难道就没有人有使用cache缓存数据的例子么?
      

  4.   

    找到原因了,不知道为什么,从cache中直接取出来的DataSet,DataTable,DataView可以进行filter或者sort,而且记录条数也是对的,但是取出来的记录是cache中缓存的Data从第一条到第N条,所以感觉取出来的东西驴头不对马嘴,重新建一个DataTable,把从cache取出来的datatable复制一次就好了,呵呵。
      

  5.   

    比较懒,直接复制。
    用datarowview吧。