gpt4 book ai didi

c# - 使用 ExecuteSqlCommand 从存储过程中获取返回值(使用 Entity Framework )

转载 作者:太空狗 更新时间:2023-10-30 01:02:30 26 4
gpt4 key购买 nike

我有这样的代码:

int retval = databaseContext.Database.ExecuteSqlCommand(command, sqlParameters.ToArray());

其中databaseContext是System.Data.Entity.DbContext类型

我想使用返回值来了解存储过程是否成功运行。基于the documentation ExecuteSqlCommand 应该返回存储过程的结果。

但是,无论我将存储过程设置为做什么,命令总是返回 -1 到 retval。我试过返回各种整数,甚至在存储过程中调用 RAISERROR,但返回值始终为 -1。

这是我试过的两个存储过程,但它们都返回 -1 并且没有给出任何运行成功与否的指示:

CREATE PROCEDURE [dbo].[myproc]
AS
BEGIN
RAISERROR ('You fail', -- Message text.
0, -- Severity - operation failed.
500-- State.
);
END
GO

CREATE PROCEDURE [dbo].[myproc]
AS
BEGIN
RETURN 1
END
GO

知道我在这里做错了什么吗?

最佳答案

基于 DavidG 的评论:

ExecuteSqlCommand 仅在它是 select 语句的结果时才返回值。

如果您想要存储过程的返回值(如问题中所示),则必须使用 EXEC @ReturnValue = [StoredProc] @param1 ... 中所述的方法this SO answer .

关于c# - 使用 ExecuteSqlCommand 从存储过程中获取返回值(使用 Entity Framework ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33747405/

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