如何限制用户在表格中输入重复值?

时间:2012-09-01 18:59:17

标签: c# asp.net sql sql-server-2008 tsql

我有一个带有项目名称的表格。在asp.net中,我有一个文本框,用户可以在表格中输入要添加的新项目。我需要限制用户在表格中输入重复的项目名称。当用户在文本框中输入文本(项目名称)时,该文本框中已存在并单击保存按钮,我需要显示该项目已存在的消息/验证。我该怎么办?

4 个答案:

答案 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将在输入重复名称时引发异常。