我有一张表,上面有商品名称。在asp.net中,我有一个文本框,用户可以在其中输入要添加到表中的新项。我需要限制用户在表格中输入重复的项目名称。当用户在文本框中输入文本(项名称)时,我需要显示一条消息/验证,表明该项已经存在。我该怎么做??
发布于 2012-09-01 19:16:00
将unique constraint添加到表的Name列中。然后,当有人尝试添加重复名称时,SQL Server将引发执行。您必须处理客户端代码中的异常,向用户显示一条合理的消息。
发布于 2012-09-01 19:10:51
您不需要编写任何代码,因此:
假设您使用的是Ajax,那么一旦textbox的text属性发生更改,您就可以检查DB中的项是否不存在。
如果您正在使用普通的asp.net,那么您可以尝试将该项添加到数据库中并捕获异常。如果在您的插入逻辑中有一个异常,并且它与一个重复的键相关(错误号2601),那么您将使textbox可视化无效。
希望能派上用场。
发布于 2012-09-01 19:12:14
你可以执行以下查询:
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
.....You can UNIQUE Constraint,它确保不会有重复的行(将有唯一的值)....If there执行查询以插入重复值,它抛出错误,您可以在您的代码中跟踪,因此适用于您的条件......
https://stackoverflow.com/questions/12230507
复制