现在的位置: 首页 > 综合 > 正文

onsubmit 导致的数据库重复插入值,重复录入的问题

2013年10月14日 ⁄ 综合 ⁄ 共 857字 ⁄ 字号 评论关闭

疑问:
为什么一在程序中执行Insert时,数据库中会自动出来两条一模一样的记录?
解决:
起初怀疑是那个数据库操作类的问题,换了conn自定义链接,还是没有解决.
难道是SQL server的问题,前阵子SP4补丁没有升级成功,倒出来了一堆错误,但为什么别的程序就没有问题...
 在查询分析器里执行正常.想着,编个过程总该没有问题了吧.于是在程序中调用存储过程.结果还是两条重复记录.MD,火了!难道我人品有问题!
 我就不信邪了,把程序一层一层扒下来,只留下库连语句和Insert语句.,上传,刷新.哦~
这次好像只有一条记录躺在那里哈:) 证明ASP与SQL server之间没有问题.
 至此,再追到提交页,看到action="?atcion=addsave" 难不成要加个确定的值.于是改为action="t?atcion=addsave".这时无间中看到.
<form name=a1 method="post" action="?atcion=addsave"
onsubmit="return checkData()">
去掉这个checkData试试.测试结果是一条,.晕了!就它了!
看了代码更晕.
function checkData() {
if (document.a1.shopname.value == "") {
alert("店名(商家名称)不得为空");
document.a1.shopname.focus();
return false;
}
document.a1.submit();
}
看到蓝色的地方,长叹, 哎.提交两次啊!!!!!!!!
改成return true; 一切正常!
我还有疑问:
.为什么程序在Insert之间做的防止重复插入的没有作用!
应该是这样: 同时提交给t.asp页面处理时,两个t.asp 程序一起执行 ,然后同时将SQL语句交给sql server一起Batch 处理. 不会有先后,所以那个防止重复的就不起作用了.

 

 

来源:http://blog.sina.com.cn/s/blog_5677bc54010000kk.html

抱歉!评论已关闭.