检查记录是否已插入

时间:2015-07-15 14:42:59

标签: c# sql-server visual-studio-2013 asp.net-mvc-5

我有一个查询(下面的假设示例)

if not exists(select productID from Products where supplierID=3)insert into Products(productName, price) values('Socks', 23)

我想要做的是在Products表中插入记录,如果没有任何其他记录存在同一supplierID。我上面的查询工作正常。执行此查询后我想要检查的是productID如果找到记录并使用它将记录插入另一个表,比如说invoices。我正在尝试使用count执行此操作,但这并非常有帮助。(始终解析为else语句。

int count=query.ExcecuteNonQuery();
if(count==1){
    return "found";
}
else{
    return "not found";
}

任何能为此提供有效解决方案的人都可以提供帮助吗?

更新

所以我在Management Studio中尝试了这个。

declare @row int if not exists(select productID from Products where supplierID=3)insert into Products(productName, price) values('Socks', 23) select @rows=@@rowcount select @rows as rows

当我在Management studio中运行此查询时,如果没有插入行,则返回0;如果插入了行,则返回1但是当我尝试在我的代码中复制查询时{{1} } alert每次都显示rows。为什么会这样?

1 个答案:

答案 0 :(得分:1)

也许,您可以尝试使用@@ ROWCOUNT = 0然后插入其他表中。如果您的查询找不到任何行,则返回0。但是您必须在查询后立即使用它,因为它仅存储上次执行查询的信息。

我不确定这可以帮助你,但我会尝试以这种方式解决这个问题......