首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

|G|第三帖,Session和ViewState的效果不一样解决思路

2012-01-10 
|G|第三帖,Session和ViewState的效果不一样cpp2017木百胸代码:用SessionprotectedvoidPage_Load(objectsen

|G|第三帖,Session和ViewState的效果不一样
cpp2017   木百胸
代码:用Session
  protected   void   Page_Load(object   sender,   EventArgs   e)
        {
                if   (!this.IsPostBack)
                {
                        Session[ "CanClick "]   =   true;
                }
        }

        ///   <summary>
        ///   Right
        ///   </summary>
        ///   <param   name= "sender "> </param>
        ///   <param   name= "e "> </param>
        protected   void   Button1_Click(object   sender,   EventArgs   e)
        {
                if   ((bool)Session[ "CanClick "])
                {
                        //do   something
                        string   strConn   =   @ "data   source=admin\SQLEXPRESS;initial   catalog=hexiesoft;persist   security   info=False;user   id=sa;password=6503;packet   size=4096;pooling=true; ";
                        string   sQuery   =   "insert   into   testClick(i,memo)   values   (2, 'test ') ";
                        SqlConnection   conn   =   new   SqlConnection(strConn);
                        conn.Open();
                        SqlDataAdapter   da   =   new   SqlDataAdapter(sQuery,   conn);
                        DataSet   ds   =   new   DataSet();
                        da.Fill(ds);
                        conn.Close();
                        Session[ "CanClick "]   =   false;
                }
                else
                {
                        Response.Write( "不可多次点击! ");
                }
        }
========
没有问题   打死也执行不了2次!
然后我改成ViewState   如果点的快的话,就会执行多次!
为什么   ?

[解决办法]
因为viewstate在页面上存储 , session 存在服务器的内存中
点击多次时 viewstate 还没来得及提交

[解决办法]
viewstate是与客户端的hidden有关,当用户多次提交或刷新时,提交到服务器的数据是完全一样的,因为viewstate也是完全一样.但session不一样,他的数据是保存在服务器的内存中


[解决办法]
Session和Viewstate就是不一样啊!
嗯。对了,是的,就是这样的啊!哈哈。。。
[解决办法]
要防止插入相同的纪录,这些都不能完全保证,要在数据库上想办法
[解决办法]
就是你的点击频率间隔时间小于服务器响应客户端的时间,使用ViewState时就会这样。

热点排行