波斯马BOSSMA Information Technology

重复提交表单与插入两条时间完全相同的数据记录

发布时间:2007年3月12日 / 分类:ASP.NET / 13,592 次浏览 / 评论

曾经误入歧途:因为我的数据表里有一个时间的字段,开始认为是这方面的原因,所以我就一直想从时间上解决重复插入记录的问题:插入一条记录前,判断时间是否相同,因为好像是精确到秒的,大概重复提交时间很短,也一直没能获得突破。例如:总是会插入时间完全相同的两条记录[如:2007-3-12 15:02:00,现在还有点不明白,为什么我的数据库里看到的时间-秒-都为00,判断相等也不相等。]

柳暗花明:昨天还发现一个问题,我的表单有一个验证码,提交表单就提示“验证码错误”,确认是记录验证码session被清空的问题,但一直不明白怎么被清空的;我的表单验证函数是检查相等后才清空session的,一直好用;还是上网看看,看到重复提交表单导致操作数据库两次,联想到验证码的问题(真是太糊涂了),是不是我的表单重复提交了呢?

问题解决:
type=”submit”
办法一:修改javascript函数,修改form.submit为return true;
办法二:修改提交按钮type=”submit”为type=”button”。

问题总结:
(1)submit和button的异同点
submit是button的一个特例,也是button的一种,它把提交表单这个动作自动集成了。所以submit 会提交表单,button不会。
如果表单在点击提交按钮后需要用javascript进行处理后再提交,使用submit时不可再使用form.submit,return false取消其提交的行为,return true允许提交行为。如果使用button则要使用form.submit,产生一个表单提交行为。
(2)插入两条时间完全相同的数据记录
ASP操作数据库插入数据时可能出现两个插入时间完全相同的记录,不同的操作在同一秒被记录。
参考CSDN上的一篇讨论:请问ASP操作数据库插入数据时会不会出现两个插入时间完全相同的记录??

<%
set rst =  erver.createObject("recordset")   
rst.open   "select id,text from mytable",cnn,1,3   '记录集锁定
rst.addnew   
rst(text) = "test"   
rst.update   
num = rst("id") '立刻返回自动编号字段的值
%>  
本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自波斯马,原文地址《重复提交表单与插入两条时间完全相同的数据记录

关键字:

建议订阅本站,及时阅读最新文章!
【上一篇】 【下一篇】

发表评论