检查DB是否有重复数据(C#)

时间:2015-04-23 19:05:15

标签: c# sql-server database winforms

我尝试允许用户添加类别(到数据库)。但是,我不希望有重复的类别。

这是我到目前为止所做的:

using (var sqlcmd = new SqlCommand("INSERT INTO category_table AS e (Category) VALUES(@cat) WHERE e.Category != @cat;", sqlconnection))
 {
     //code here to add category to DB
 }

然而,我收到错误:

  

" SqlException未处理:关键字' AS'附近的语法不正确。"

3 个答案:

答案 0 :(得分:2)

只需将列标记为Unique即可。不要在C#中完成DB的工作。

答案 1 :(得分:0)

首先,您的插入语法错误。它应该是

INSERT INTO category_table (Category)  values(@cat)

同时删除where条件。 insert的语法错误。

所以它会像

using (var sqlcmd = new SqlCommand("INSERT INTO category_table (Category)  values(@cat)", sqlconnection))
 {
     //code here to add category to DB
 }

其次,您需要将列设为unique,而不想复制。

答案 2 :(得分:0)

问题在于您的SQL。

INSERT INTO category_table AS e (Category) VALUES(@cat) WHERE e.Category != @cat;

插入内容没有WHERE子句。此外,您可以对要插入的表进行别名。

如果您只想有条件地插入数据库,则需要使用SELECT来查看是否存在相同类型的现有类别,并且仅在不存在的情况下插入,或通过约束将列设置为唯一。