.NET防止重复提交数据
最近在做一个销售系统的时候,操作人员提交数据的时候数据库竟然会出现多条数据相同的记录,并且是在1秒之内,客户反馈给我们,第一反应是重复提交的问题,检查了下代码,程序执行完成后应该是跳转到别的页面的,可为什么执行了第一次后没有跳转呢? 并且系统的提交按钮提交后 会confirm 确认 后 disabled=“true”的,难道是confirm验证没有执行? 由于不能和客户直接沟通,也不得而知,但是在以后编写程序时要注意重复提交的问题,有如下方法
1.页面第一次加载到时候生成一个令牌, 提交数据的时候检测令牌状态 在程序执行完以后将令牌清空
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["istj"] = "0";
}
if (ViewState["istj"] != null)
{
Response.Write(ViewState["istj"].ToString());
}
else
{
Response.Write("为null");
}
}
protected void Button2_Click(object sender, EventArgs e)
{
//执行程序
ViewState["istj"] = null;
}
2.第一次加载页面的时候生成数据库唯一标识
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["istj"] = DateTime.Now.ToString("yyyyMMddhhmmss") + "唯一标识";
//或者 label.text= DateTime.Now.ToString("yyyyMMddhhmmss") + "唯一标识";
}
if (ViewState["istj"] != null)
{
Response.Write(ViewState["istj"].ToString());
}
else
{
Response.Write("为null");
}
}
protected void Button2_Click(object sender, EventArgs e)
{ //执行程序
//首先检测 是否重复提交
//检测该唯一标识数据库里是否存在
ViewState["istj"] = null;//销毁标识
}
注:按钮提交后必须要disabled="true";在客户端防止再次提交
.NET防止重复提交数据的更多相关文章
- PHP防止页面刷新、重复提交数据
PHP防止页面刷新.重复提交数据 (2011-12-09 16:52:45) 转载▼ 标签: it 分类: php技术相关 闲来无事看了一下php session ,又在网上看了防止页面刷新重复提交数 ...
- php防止浏览器点击返回按钮重复提交数据
<!--html中存放隐藏域数据--> <input type="hidden" value='{$sun_nums}' name='sub_nums' /> ...
- yii防止延迟用户多次点击按钮重复提交数据
是不是被用户的行为所困扰? 一. 一个表单用户点击提交按钮了N次,这也导致了数据提交了N次. 为了此受到了测试的欺辱,受到了老板的批评? 不用怕,它就是来拯救你的. 第一步:打开命令行,敲入 comp ...
- web开发中禁止因为网速慢导致重复提交数据
var checkSubmitFlg = false; function check() { if (!checkSubmitFlg) { ...
- 页面按F5重复提交数据解决方法
在Web开发中,必须面对的问题就是表单的重复提交问题(这里仅指F5刷新造成的重复提交),.NET中处理这个问题似乎没有什么好的方法. 在网上搜索得到的解决方法主要有两种,一种是直接让表单按钮失效,从而 ...
- Spring MVC防止数据重复提交
现实开发中表单重复提交的例子很多,就包括手上这个门户的项目也有这种应用场景,用的次数多,但是总结,这还是第一次. 一.基本原理 使用token,给所有的url加一个拦截器,在拦截器里面用java的UU ...
- Struts2 06--系统拦截器防止数据重复提交
一.拦截器简要概述 拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作.拦截是AOP的一种实现策略. 在W ...
- Spring MVC拦截器+注解方式实现防止表单重复提交
原理:在新建页面中Session保存token随机码,当保存时验证,通过后删除,当再次点击保存时由于服务器端的Session中已经不存在了,所有无法验证通过. 注,如果是集群的方式,则需要将token ...
- ASP.Net中防止页面刷新重复提交的几种方法
[摘要] 目前很多网站都要提交页面插入或更新数据库,比如留言本,一个用户提交留言后,如果按F5,就会重新提交一遍留言,导致数据库出现两条一模一样的留言,本文介绍了几种防止页面刷新,导致重复提交数据的方 ...
随机推荐
- 图片处理中的Dithering技术
话说二战的时候,美国轰炸机每次执行任务,除了满载着威力强大的炸弹以外,还常常要装配一台计算机,飞机飞行方向和投弹的抛物线的计算都离不开这台机器.可是世界上第一台电子计算机在二战结束后才发明,轰炸机上当 ...
- Android平台设计规范整理(尺寸+组成元素+字体+滑块)
转自:http://www.ui.cn/project.php?id=12394
- HDU 3346 Lucky Number
水题 #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> us ...
- memcached添加IP白名单,只允许指定服务器调用
由于memcached默认安装是不用配置密码的(具体的密码配置我也没怎么研究,据说是有的,大家感兴趣去找一找) 然而memcached链接也是非常简单的 linux命令链接使用 Telnet IP地 ...
- Notice: ob_end_clean() [ref.outcontrol]: failed to delete buffer. No buffer to delete
解决方法一 @ob_end_clean(); 解决方法二 if(ob_get_contents()) ob_end_clean();
- AnimationSet的使用
Animations的使用(3) 1 AnimationSet的使用方法 什么是AnimationSet 1 AnimationSet是Animation的子类 2 一个AnimationSet包含了 ...
- js获取屏幕和窗口的信息
<html><script>function a(){document.write("屏幕分辨率为:"+screen.width+"*" ...
- 修炼dp(1)
从最简单的开始: POJ:The Triangle #include <cstdio> #include <algorithm> #include <cstring> ...
- 超级好用的excel第三方组件
http://www.cnblogs.com/MR_ke/archive/2010/02/25/1673243.html 前一篇介绍了怎么用com操作excel,后来有朋友说用NPOI好,下面我也来介 ...
- Lambda应用设计模式 [转载]
Lambda应用设计模式 前言 在使用 Lambda 表达式时,我们常会碰到一些典型的应用场景,而从常用场景中抽取出来的应用方式可以描述为应用模式.这些模式可能不全是新的模式,有的参考自 Java ...