【发布时间】:2015-04-20 15:17:48
【问题描述】:
我在 C# 中使用 SqlCommand.ExecuteScalar 来获取 Microsoft SqlServer 中存储过程的结果。结果应该由存储过程的最后一个命令-“SELECT something”设置。
它与过程中的一个 SELECT 命令一起正常工作。但是,当存储过程中有更多 SELECT 时,它会出错。好像返回的是第一个 SELECT 的结果:
CREATE PROCEDURE TestProcedure AS
BEGIN
SELECT 'A'
SELECT 'B"
END
执行它将通过 ExecuteScalar 返回“A”
我正在使用其他人的程序,他在其中使用了很多 SELECT 命令,显然是为了在 Sql Magagement Studio 中进行测试。我宁愿不能改变它们。
我能否从最终的 SELECT 中获取值?
【问题讨论】:
-
您可以使用
ExecuteReader代替ExecuteScalar,然后使用NextResult。 -
你需要使用
SqlCommand.NextResult来获取下一个结果集。