gpt4 book ai didi

sql-server - 存储数据提供程序返回的数据读取器没有足够的列用于请求的查询

转载 作者:行者123 更新时间:2023-12-04 01:16:30 27 4
gpt4 key购买 nike

我正在使用 Entity Framework 。我创建了一个名为 Customer 的实体对象并添加了我的 Stored proc。

我的存储过程包含另外两个存储过程,它们在输出参数中返回一些字符串。我在主存储过程中连接两个存储过程的输出参数值。

主存储过程也在输出参数中返回结果字符串。

我还为主存储过程创建了一个函数导入以返回连接的字符串。

当我运行我的应用程序时,我得到“商店数据提供者返回的数据读取器没有足够的列来请求查询。”

我在第一个和第二个过程中没有 select 语句。让我知道如何返回主存储过程的输出参数值。

在下面找到更多信息。

Create Procedure MainProcedure
@Id int,
@MainResult nvarchar(max) output
AS
Begin
declare @firstResult nvarchar(max)
declare @secondResult nVarchar(max)
declare @MainResult nVarchar(max)

Exec FirstSP @Id,@firstResult Output
Exec SecondSP @Id,@secondResult Output

Set @MainResult=@firstResult+@secondResult

End

实体代码看起来像
System.Data.Objects.ObjectResult<string> resultList = null;
var OutputParamter =new ObjectParameter("MainResult",typeof(string));
resultList = ent.MainProcedure(ID, OutputParamter);

最佳答案

我看不到你的存储过程来帮助你更多,但是当我使用存储过程时遇到了这个错误,并试图通过“return”语句获取返回值

IF EXISTS (SELECT * FROM Table) 
return 0

这在 sql server 上工作正常,但在 EF 上则不行。

我的解决方案是用 select 语句替换 return 语句,如下所示:
IF EXISTS (SELECT * FROM Table) 
--return 0
select @OUTPUT=0

link了解更多信息。

关于sql-server - 存储数据提供程序返回的数据读取器没有足够的列用于请求的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18504513/

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