这个问题和C#这个语言本身没有什么关系吧?
建议不要再WEB间传递对象,可以传一个相关的查询字串,在WEB初始化的时候使用查询字串重新创建DATASET就可以了。

解决方案 »

  1.   

    DataSet ds = new DataSet();
    ...
    Cache["sth"] = ds;
    Session, Application都可以, 但它们对大小有限制
      

  2.   

    Application和Cache都是全局的,建议使用Session
      

  3.   

    来点发散思维的可以序列化到磁盘上,然后用传字符串的方法传文件名,接收的页面反序列化即可,当然还可以写到page基类中
      

  4.   

    Application和Cache都是全局的,建议使用Session
    说这句话的人是唯一明白什么叫ASP.NET人
    Me Too
    最好只能也就用Session了!尤其是B/S程序
      

  5.   

    jjstar(北人)DataSet序列化到XML文件中可以保存DataSet里面的内容吗?
    还是仅仅保存结构?
      

  6.   

    为什么这么做?用xml不是很好么??
      

  7.   

    谢谢chestnuts(橙子鸟) 的支持。
    也许我们应该将这句话诠释的更清楚一些。
    Application和Cache都是多用户共享的。所以用Session.
    具体的写法是:
    DataSet myDS = new DataSet();
    Session["myDS"] = myDS;
    在另一个页面调用时:
    DataSet myDS = (DataSet)Session["myDS"];
    此外对imimp(迷雾) 的问题回答是:
    当DataSet序列化或是类型化时,编辑器能智能的感知DataSet中的表和列,同时还具备一个
    更强的优点是,对数据集在编译时的类型检查,这称为强类型。
    当然类型化以后是可以保存数据的。
      

  8.   

    谢谢各位的指点!但现在我用Session传递的,报错信息“DataSet tempdataset=(DataSet)Session["saledataset"];(这一行)不能类型转换”
      

  9.   

    如果Session里不存在这个值~~当然不能转换了~~
      

  10.   

    在页与页之间进行数据的传递用Context.Handle
      

  11.   

    记录集太大时Session太占资源,传xml比较科学.
      

  12.   

    我用
    DataSet myDS = new DataSet();
    Session["myDS"] = myDS;
    进行说明时,没有说的太清楚。
    上面这个例子里没有往myDs里添数据。
    pear13(梨子) 的DataSet tempdataset=(DataSet)Session["saledataset"];这行报错应该是
    Session["saledataset"]为空造成的。
      

  13.   

    忘了说明页面间或是层次间传递DataSet时里面最好不要出现数据类型为text的字段!!!