您的位置:首页 > 数据库 > MySQL

mysql myisam innodb 区别

2010-09-01 00:44 323 查看
1.this.response.redirect("xxx.aspx");

做完数据处理后,重新定向本页面,也就是重新加载本页面,用户再点刷新时,只是本页面的刷新,不会更新数据库。这个方法比较简单。

2.在网页生成时,在服务器端Application和客户端ViewState设置两个参数,当更新本页面时,校验这两个参数是否一致,一致则为客户端正常请求服务器,不一致则客户端请求无效(如页面刷新,或者数据过期)。

实现代码:

在page_load事件里面

if (!this.IsPostBack)

{

// 绑定数据

GridView1.DataSource = getData();

GridView1.DataBind();

// 设置本次加载页面的随即数,用于防止刷新,重复更新数据

pageNum = getNumber();//getNumber为生成4位的随机数。

ViewState["pageNum"] = pageNum;

// 用application保存,为了防止多个用户更新同一条数据

Application["pageNum"] = pageNum;

}

else

{

// 判断客户端变量和服务器变量是否一致,防止刷新。

if (Application["pageNum"].ToString() != ViewState["pageNum"].ToString())

{

// 发送客户端脚本,并重新定向到本页面。

ClientScript.RegisterClientScriptBlock(this.GetType(), "messageBox", "<script language='javascript'>alert('数据过期,请重新加载页面!');document.location='frmMonthEnd.aspx';</script>");

}

else

{

// 生成新的校验数据

pageNum = getNumber();

ViewState["pageNum"] = pageNum;

Application["pageNum"] = pageNum;

}

}

在你更新数据库的事件里面写

if (Application["pageNum"].ToString() != ViewState["pageNum"].ToString())

{

return;

}

// 返回一个4位随机数

private string getNumber()

{

Random rd = new Random();

return Convert.ToString((rd.Next(9) +1)* 1000 + rd.Next(10) * 100 + rd.Next(10) * 10 + rd.Next(10));

}

最后说明下为啥用Application,这种情况是考虑到,当多个用户先后打开本页面,他们都要更新本页面的数据,这个时候需要验证这些用户的验证变量是否与服务器的一致,只有最后一个打开本页面的才可以更新本页面。当然也可以改变一下代码,让所有人都能更新数据,但第一个人更新后,其他人更新时,会提示数据过期,重新加载页面。

if (!this.IsPostBack)

{

// 绑定数据

GridView1.DataSource = getData();

GridView1.DataBind();

// 设置本次加载页面的随即数,用于防止刷新,重复更新数据

if(Application["pageNum"]==null)

{

pageNum = getNumber();//getNumber为生成4位的随机数。

ViewState["pageNum"] = pageNum;

// 用application保存,为了防止多个用户更新同一条数据

Application["pageNum"] = pageNum;

else{

ViewState["pageNum"].ToString()=Application["pageNum"].ToString() ;

}

else

{

// 判断客户端变量和服务器变量是否一致,防止刷新。

if (Application["pageNum"].ToString() != ViewState["pageNum"].ToString())

{

// 发送客户端脚本,并重新定向到本页面。

ClientScript.RegisterClientScriptBlock(this.GetType(), "messageBox", "<script language='javascript'>alert('数据过期,请重新加载页面!');document.location='frmMonthEnd.aspx';</script>");

}

else

{

// 生成新的校验数据

pageNum = getNumber();

ViewState["pageNum"] = pageNum;

Application["pageNum"] = pageNum;

}

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: