gpt4 book ai didi

c# - 从 C# 中的存储过程返回最后一个 SELECT 值

转载 作者:太空宇宙 更新时间:2023-11-03 23:39:04 25 4
gpt4 key购买 nike

我在 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 中获取值?

最佳答案

您需要使用 SqlDataReader.NextResult得到下一个结果集。它返回一个 boolean 值来指示是否有下一个。要获得最后一个,只需继续调用 NextResult 直到它返回 false

var reader = command.ExecuteReader();
while (reader.NextResult())
{
//We still haven't reached the last result set yet...
}

关于c# - 从 C# 中的存储过程返回最后一个 SELECT 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29751867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com