gpt4 book ai didi

c# - 执行不返回任何结果的存储过程时抛出错误

转载 作者:太空狗 更新时间:2023-10-29 23:16:09 27 4
gpt4 key购买 nike

我目前正在我们的一个项目中使用 dapper,我们一直在执行存储过程。在前几个方法中,当我们执行的存储过程返回行时一切正常。

现在,当我尝试从找到时返回信息的存储过程中获取数据时,我遇到了一个问题。这是一个非常常见的用例(例如,在应用程序上记录用户)。当调用 Query 方法时,存储过程没有返回任何行,dapper 抛出一个 ArgumentException 消息:

“当使用多重映射 API 时,如果您的键不是 Id 参数名称:splitOn,请确保您设置了 splitOn 参数”

我使用的代码是:

using (var conn = new SqlConnection(connString))
{
conn.Open();

return conn.Query<Customer>(
sql: "prc_GetCustomer",
param: new { Parameter = p },
commandType: CommandType.StoredProcedure).FirstOrDefault();
}

我知道有一个 Execute 方法应该在程序不返回任何行时使用,但我的情况确实不是这样。此外,dapper 异常具有误导性,因为我没有使用多重映射。

有什么想法吗?谢谢!

最佳答案

如果查询没有返回任何结果网格,您应该使用 Execute,而不是 Query。

关于c# - 执行不返回任何结果的存储过程时抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14406141/

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