我有一个带有项目名称的表格。在asp.net中,我有一个文本框,用户可以在表格中输入要添加的新项目。我需要限制用户在表格中输入重复的项目名称。当用户在文本框中输入文本(项目名称)时,该文本框中已存在并单击保存按钮,我需要显示该项目已存在的消息/验证。我该怎么办?
答案 0 :(得分:3)
在“名称”列上向您的表格添加unique constraint。当有人试图添加重复的名称时,SQL Server将引发一个execption。您必须在客户端代码中处理异常,向用户显示合理的消息。
答案 1 :(得分:0)
你没有写任何代码所以:
假设您正在使用Ajax,那么一旦文本框的文本属性发生变化,您就可以检查数据库中的项目是否存在。
如果您使用普通的asp.net,那么您可以尝试将该项添加到数据库并捕获异常。如果插入逻辑中存在异常且与重复键相关(错误号2601),则会使文本框视觉无效。
希望它有用。
答案 2 :(得分:0)
您可以执行以下查询:
SELECT checking_col_name
FROM your_table
WHERE checking_col_name = your_textbox_value
GROUP BY checking_col_name
HAVING ( COUNT(checking_col_name) > 0 )
如果上面的查询返回该行,那么您可以推断该值已经存在于给定表的列中,因此您可以相应地在您的代码中应用该条件.....
由于Wiktor Zychla建议在处理多个用户环境时上述查询可能有问题,我建议您检查Constraint
.....你可以UNIQUE Constraint确保有{{1}}没有重复行(只有唯一值)....如果执行查询以插入重复值,它会抛出错误,您可以在代码中跟踪,因此适用于您的条件......
答案 3 :(得分:0)
您可以在列Name
上使用unique constraint and unique index到您的表格。然后,SQL Server将在输入重复名称时引发异常。