使用Javascript,ASP.NET和AJAX防止重复数据库输入

时间:2012-08-24 18:37:38

标签: javascript asp.net ajax

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

1 个答案:

答案 0 :(得分:2)

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

上述方法有一些好处IMO:

  1. 少一点数据库电话。
  2. 由于上述原因而无需进行ajax调用,因此应该表现得更好
  3. 它在数据库级别强制执行数据完整性,这是一件好事。