0

提交表单时,我需要检查是否已经存在重复。如果是这样,它会停止提交表单并允许此人再次编辑字段。我以前从未真正使用过 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"/>
4

1 回答 1

2

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

上述方法有几个好处IMO:

  1. 少了一个数据库调用。
  2. 由于上述原因,并且不必进行 ajax 调用,应该会表现得更好
  3. 它在数据库级别强制执行数据完整性,这是一件好事。
于 2012-08-24T19:03:10.060 回答