的ExecuteNonQuery返回-1(ExecuteNonQuery returns -1)

2019-09-19 14:55发布

我有一个存储过程,它返回一个字符串值,我一直在使用执行该SP ExecuteNonQuery声明。 当我执行,我得到-1作为返回值。

我从来没有使用SET NOCOUNT ON 。 我怎样才能得到返回值? 我没申报的返回值作为OUTPUT -只是SELECT @VARIABLENAME 。 我如何使用获得的价值ExecuteNonQuery

Answer 1:

ExecuteNonQuery用于执行查询仅返回受影响的行的数目 (尽管可以填充输出参数)。 -1意味着没有行受到影响,或者您已设置NOCOUNT上。

如果你需要从存储过程中读取数据使用另一个API调用。



Answer 2:

如果只抓住一个值,如果你是在.NET语言特点我会使用ExecuteScalar命令。 我知道Java和类似具有等效的。

http://msdn.microsoft.com/en-us/ibrary/system.data.sqlclient.sqlcommand.executescalar.aspx

的ExecuteNonQuery可以得到回报的数据,如果你有输出PARAMATERS在你的SP。 本文介绍了如何。

http://msdn.microsoft.com/en-us/library/80x06z3b(v=VS.71).aspx

但如果你又是刚刚返回一个字符串的ExecuteScalar更容易使用。



文章来源: ExecuteNonQuery returns -1