如果已存在,如何检查插入新值?

时间:2012-05-03 18:39:02

标签: c# asp.net

我有一个gridview和sqldatasource来将数据绑定到gridview。

  • 我在数据库中有3列:姓名,年龄,生日。
  • 我有3个文本框和一个用于添加新行的按钮 数据表格中的文本框,gridview。

当我点击按钮添加包含这些信息的新行时,我需要检查文本框中的值是否为" Name"已经存在于列"名称"的数据表中如果是,则更新被取消,并要求用户输入另一个值。

2 个答案:

答案 0 :(得分:1)

最好在表格中的列名称上定义唯一索引。您可以让代码执行,无需检查名称是否存在。如果名称已经存在(它可以捕获并很好地显示给用户),它将返回错误;如果表中不存在该名称,则成功。

我不知道你使用的是哪个数据库,但是这样的东西应该适用于大多数数据库。

CREATE UNIQUE INDEX index_name
ON your_table (name)

答案 1 :(得分:0)

基于我如何理解您的问题的最简单的解决方案是在插入之前运行快速查询。

SELECT COUNT(*) FROM tblName WHERE Name = @Name

并且,如果值为零,则数据库中没有任何内容与该名称匹配。或者,如果要在选择时查找匹配名称的ID,则可能需要设置存储过程。有一个最初查询匹配名称的返回值,并且:IF(@ReturnValue为null),执行插入并返回值

SELECT SCOPE_IDENTITY()