关于SqlDataCommand.ExecuteNonQuery 方法
MSDN曰:
可以使用 ExecuteNonQuery 执行编录操作(例如查询数据库的结构或创建诸如表等的数据库对象),或通过执行 UPDATE、INSERT 或 DELETE 语句更改数据库中的数据。
虽然 ExecuteNonQuery 不返回任何行,但是映射到参数的任何输出参数或返回值都会用数据进行填充。
对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于其他所有类型的语句,返回值为 -1。9499.net
但是我今天发现用ExecuteNonQuery 执行update,insert和delete的存储过程,返回的都是-1,怪了,怪了。
搞了半天,发现原来存储过程里面有SET NOCOUNT ON这一行,把它去掉,结果才能符合MSDN之结论。