public SqlCommand selectCommand{
  get
  {
return (SqlCommand)(ViewState["selectCommandText"]);
  
  }
  
  set{
  
  ViewState["selectCommandText"]=value;
  }
  }
编译的时候不报错.运行的时候报错.可能是需要序列化.这样做是不行的.但如何实现这项功能呢?有什么解决方案?

解决方案 »

  1.   

    ViewState只能记住对象可以序列化的对象。
    SqlCommand显然是一个控制类,对于控制类,好像没有什么
    设计模式或设计方式中会支持它的序列化。在Application中存放个ArrayList,
    再做个类:CommandHolder
    定义为
    class CommandHolder
    {
     Guid key;
     SqlCommand sql;
    同时重写Equal方法。
    }
    将这些CommandHoler对象存放在Application中,
    同时将key通过ViewState在网际间传输。
      

  2.   

    楼上所说的存在一个何时删除Application的问题.而且可能对服务器的负担比较重.还有别的解决方案吗?