我尝试允许用户添加类别(到数据库)。但是,我不希望有重复的类别。
这是我到目前为止所做的:
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'附近的语法不正确。"
答案 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
来查看是否存在相同类型的现有类别,并且仅在不存在的情况下插入,或通过约束将列设置为唯一。