C# 防止刷新后插入:时间戳与检查现有记录
在刷新页面后,哪种方法可以更好地防止数据重新插入数据库 是否每次插入一行或使用viewState和session时都要检查数据库更有效C# 防止刷新后插入:时间戳与检查现有记录,c#,C#,在刷新页面后,哪种方法可以更好地防止数据重新插入数据库 是否每次插入一行或使用viewState和session时都要检查数据库更有效 protected void Page_Load(object sender, EventArgs e) { /* check refresh */ if (IsPostBack == false) { Session["CheckRefresh"] = Server.UrlDe
protected void Page_Load(object sender, EventArgs e)
{
/* check refresh */
if (IsPostBack == false)
{
Session["CheckRefresh"] = Server.UrlDecode(System.DateTime.Now.ToString());
}
//rest of the codes
}
protected void Page_PreRender(object sender, EventArgs e)
{
// set both session and viewstate value equal
ViewState["CheckRefresh"] = Session["CheckRefresh"];
}
protected void btnSaveTazkera_Click(object sender, EventArgs e)
{
if (Session["CheckRefresh"].ToString() == ViewState["CheckRefresh"].ToString())
{
//give a new value to session
Session["CheckRefresh"] = Server.UrlDecode(System.DateTime.Now.ToString());
//rest of the code
}
tnx.使用会话更有效,但也可能不是100%安全(如果我不刷新页面,但重新打开浏览器并再次输入相同的信息怎么办?会话是新的,数据仍将插入两次) 如果要防止向数据库中重复插入记录,最简单的方法是创建相应的主键,或通过检查插入是否正常的存储过程进行插入 在插入之前,您仍然可以将会话用作附加检查,但最终检查应留给数据库/插入数据库的代码 但这只是我的意见和我会怎么做。我不认为有什么像标准的事情可以做:-)