在查询和存储过程之间从数据库中删除时,ExecuteNonQuery的结果不同

时间:2017-07-14 03:18:15

标签: c# sql-server stored-procedures

我有一个SP_Delete存储过程允许删除数据行。当我在C#中创建查询语句时,我有两种查询:

  • Delete from table where id = @id
  • exec SP_Delete @id

我有这段代码:

int rowsAffected = 0;

SqlCommand cmd = new SqlCommand(query, connString); 

rowsAffected = cmd.ExecuteNonQuery();

return rowsAffected;

但是,rowsAffected返回了:

  • 当我使用查询Delete from table where id = @id时,rowsAffected = number of record effected from table。例如:我删除了3条记录,然后rowsAffected = 3

  • 当我使用exec SP_Delete @id时,rowsAffected始终为-1,但我删除的记录超过1条。例如:我删除了3条记录,然后rowsAffected = -1

有人能解释查询和存储过程之间存在差异的原因吗?

谢谢大家!

0 个答案:

没有答案