我有一个存储过程并返回字符串值,我必须使用ExecuteNonQuery
语句执行此SP。当我执行它时,我得到-1作为返回值。
我从未使用SET NOCOUNT ON
。我如何获得返回值?我没有将返回值声明为OUTPUT
- 只是SELECT @VARIABLENAME
。如何使用ExecuteNonQuery
获取价值?
答案 0 :(得分:7)
ExecuteNonQuery
用于执行查询that return only the number of rows affected(尽管可以填充输出参数)。 -1
表示没有行受到影响或您已设置了nocount。
如果需要从sproc中读取数据,请使用另一个API调用。
答案 1 :(得分:1)
如果你只是抓取一个值,我会使用ExecuteScalar命令,如果你在.Net Langauge。我知道Java等具有相同的功能。
http://msdn.microsoft.com/en-us/ibrary/system.data.sqlclient.sqlcommand.executescalar.aspx
如果您的SP中有输出参数,则ExecuteNonQuery可以获取返回数据。本文解释了如何。
http://msdn.microsoft.com/en-us/library/80x06z3b(v=VS.71).aspx
虽然你只是返回一个字符串,但ExecuteScalar更容易使用。