gpt4 book ai didi

stored-procedures - 访问存储过程输出参数时出现间歇性空引用错误

转载 作者:行者123 更新时间:2023-12-02 20:23:40 25 4
gpt4 key购买 nike

我有一些使用数据读取器访问存储过程的代码,它还返回一些输出参数和结果集。数据读取器是使用 using block 创建的。

问题是我有时在尝试访问输出参数时收到“对象引用未设置为对象实例”的信息。我知道如果在尝试访问输出参数时未关闭数据读取器,通常会收到此错误。但是,由于 datareader 是在 using block 中访问的,并且访问输出参数的代码位于 using block 之外,因此参数永远不应该为 null。

这怎么可能?

SqlCommand command = new SqlCommand();
command.CommandText = "stored proc";

CommandBehavior commandBehavior = new CommandBehavior();

using (var reader = command.ExecuteReader(commandBehavior))
{
while(reader.Read())
{
//access record values
}
}

var param1 = command.Parameters["firstParam"].Value; //<-- null reference error here

为了简洁起见,我省略了一些代码。

代码和 SQL 服务器在虚拟机上运行。

其他相关事实:C# .Net Framework 4.0、SQL Server 2012

最佳答案

您的代码可能是正确的,您只需要在您提到的行上处理 null 即可,请尝试用以下代码替换该行。

var param1 = Convert.ToString(command.Parameters["firstParam"].Value);

关于stored-procedures - 访问存储过程输出参数时出现间歇性空引用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37787075/

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