什么是阻止重复插入数据库的最佳方法

Stu*_*art 1 c# sql sql-server asp.net linq-to-sql

我有一个论坛应用程序使用asp.net,c#,sql server和linq to sql.它有多个插入,我认为当按下插入按钮时,也可能在刷新浏览器或单击后退时.

什么是最全面的方式,或防止这种情况的方法.

更新:我目前在插入文本后使用response.redirect.我想也许正确的方法,在阅读回复后,是用javascript立即禁用按钮?然后在表单上的隐藏字段(或会话?)上保存唯一值.在数据库中为此值创建一个字段,并针对此字段检查此唯一值?

谢谢

Qua*_*noi 8

  1. UNIQUE为每个页面分配cookie或隐藏控件
    • UNIQUE在表中创建一个包含此cookie或控件值的字段.
    • 如果使用相同的cookie插入记录,INSERT则会失败并且您可以处理(或忽略)此条件.

  • 杂波数据库表短暂的令牌,但解决的办法是正确的,否则你只需要积极的令牌存储在会话(服务器端),而不是数据库 - 一旦插入,从会议中删除令牌. (3认同)

Dav*_*ave 5

当我有一个插入或更新的页面时,我通常会在更新完成后对另一个页面执行Response.Redirect,即使您只是Response.Redirect到同一页面.这样,如果刷新页面,则不会重新发布您的数据.