1

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

4

4 回答 4

3

在 Name 列上向表中添加唯一约束。然后,当有人尝试添加重复名称时,SQL Server 将引发 execption。您必须处理客户端代码中的异常,向用户显示合理的消息。

于 2012-09-01T19:16:00.337 回答
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 约束,以确保不会有重复的行(只有唯一的值) ....如果执行查询以插入重复值,则会引发错误,您可以在代码中跟踪该错误并因此适用于您的条件......

于 2012-09-01T19:12:13.503 回答
0

您可以在表的列上使用唯一约束和唯一索引Name。SQL Server 将在输入重复名称时引发异常。

于 2012-09-02T11:19:45.857 回答
0

您没有编写任何代码,因此:

假设您使用的是 Ajax,一旦文本框的文本属性发生更改,您可以检查数据库是否不存在该项目。

如果您使用的是普通的 asp.net,那么您可以尝试将项目添加到数据库并捕获异常。如果您的插入逻辑中存在异常并且它与重复键(错误号 2601)相关,那么您会使文本框视觉对象无效。

希望它服务。

于 2012-09-01T19:10:51.220 回答