首页 新闻 会员 周边 捐助

sql insert into插入数据时,会插入重复数据,如何防止?

0
[待解决问题]

使用环境:html+ajax+handler.aspx+sqlhelper

我在html页面上面点击一个按钮时,因为网络延迟或重复快速点击的情况下,会导致插入重复数据,请问如何防止?谢谢。

胖鸟聊技术的主页 胖鸟聊技术 | 菜鸟二级 | 园豆:210
提问于:2016-05-24 10:42
< >
分享
所有回答(6)
0

按钮点击一次以后,可以让它灰化,disable。   或者添加一个等待操作

张老师的小黑屋 | 园豆:218 (菜鸟二级) | 2016-05-24 10:48
0

问题是2个.一个重复点击.一个重复插入.

重复点击.一般是在点击请求开始时.网络请求开始前.将按钮改为不可用状态.再发起网络请求.

重复插入.最简单的做法是在表的业务字段上加唯一索引.比如手机号码唯一.就在手机号码的字段上加唯一所以.

 

吴瑞祥 | 园豆:29449 (高人七级) | 2016-05-24 10:54
0

点击后加个蒙板,要么后台插入时加个唯一判断

laugher_ccc | 园豆:593 (小虾三级) | 2016-05-24 11:20
0

前台的处理,友好的方式是,蒙版等待的效果,处理完后可在点击。

leehavin | 园豆:343 (菜鸟二级) | 2016-05-24 17:39
0

插入之前判断一下是否存在,存在就不要在插入了,另外,表也应该有个主键

蔡先森 | 园豆:181 (初学一级) | 2016-05-25 00:38
0

楼上几位回答的都很好,大概总结一下就是:

1.点击后,按钮变灰,或呈现等待状态,客户就知道已经在响应了,不会再次点击。

2.后台每次插入的时候判断下当前信息是否存在,存在则更新或不操作,不存在则插入

还有一点,如果是用ajax来执行上述操作的话,在ajax返回后将插入按钮恢复之前的状态

你好,再见 | 园豆:105 (初学一级) | 2016-05-27 11:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册