gpt4 book ai didi

sql-server - 如何使用 Dapper 检索存储过程的返回值

转载 作者:行者123 更新时间:2023-12-05 00:49:17 26 4
gpt4 key购买 nike

我有一个这种形式的存储过程:

CREATE PROCEDURE AddProduct
(@ProductID varchar(10),
@Name nvarchar(150)
)
AS
SET NOCOUNT ON;

IF EXISTS (SELECT TOP 1 ProductID FROM Products
WHERE ProductID = @ProductID)
RETURN -11
ELSE
BEGIN
INSERT INTO Products ([AgentID], [Name])
VALUES (@AgentID, @Name)

RETURN @@ERROR
END

我有这个 C# 来调用存储过程,但我似乎无法从中获得正确的值:

var returnCode = cn.Query(
sql: "AddProduct",
param: new { @ProductID = prodId, @Name = name },
commandType: CommandType.StoredProcedure);

如何确保 returnCode 变量将包含从 RETURN -11RETURN @@ERROR 行返回的值?

最佳答案

为了在 SQL 中使用 RETURN 语句,C# 变为...

var _params = new DynamicParameters{ @ProductID = prodId, @Name = name };
_params.Add(
name: "@RetVal",
dbType: DbType.Int32,
direction: ParameterDirection.ReturnValue
);
var returnCode = cn.Execute(
sql: "AddProduct",
param: _params,
commandType: CommandType.StoredProcedure);
return _params.Get<int>("@RetVal");

这不是我希望的实现,但它有效。

关于sql-server - 如何使用 Dapper 检索存储过程的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44045844/

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