使用Javascript、ASP.NET和AJAX防止重复的数据库条目

Prevent Duplicate Database Entry with Javascript, ASP.NET, and AJAX

本文关键字:数据库 Javascript ASP NET AJAX 使用      更新时间:2023-09-26

在提交表单时,我需要检查是否已经存在重复。如果是,它将停止提交表单,并允许用户再次编辑字段。我以前从未真正使用过ajax,但我读到过这样的东西,最好使用它。我也不会用PHP,但可以用javascript和asp。现在,我可以通过以下操作检查数据库是否已经存在重复值:

var  SQL =  " SELECT COUNT(LeaveID) AS Dup, personalID, StartDate, EndDate, StartTime, EndTime, LeaveType";
     SQL += " FROM onLeave";
     SQL += " WHERE personalID = " + ipersonalID;
     SQL += " GROUP BY personalID, StartDate, EndDate, StartTime, EndTime, LeaveType";
     SQL += " HAVING COUNT(LeaveID) > 1";
     SQL += " ORDER BY StartDate DESC";
var rs = Connection.Execute(SQL);
writeTable(rs)

writetable(rs)只是将数据输出到html表中,ipersonalID是查看页面的人的当前ID。提交只是一个简单的输入,如下所示:

<input type="button" name="btnSubmit" value="Submit" onclick="submitSkedChange()" id="btnSubmit"/>

我同意@asawyer的评论。更好的方法是将唯一约束添加到表中,然后让它失败。在代码后台,您只需捕获Exception并向用户显示错误。您可以专门捕获Violation of unique constraint错误并采取相应的操作。对于任何其他错误,你必须决定该怎么做。

上述方法有几个好处IMO:

  1. 少了一个DB调用
  2. 由于以上原因以及不必进行ajax调用,应该会表现得更好
  3. 它在数据库级别强制执行数据完整性,这是一件好事