【发布时间】:2019-09-17 13:59:57
【问题描述】:
我正在使用 Entity Framework 的 ExecuteSqlCommandAsync 命令调用存储过程。这会引发错误消息:
过程或函数“LoadChargeCarrierOnForklift”需要参数 '@ID_Storage',未提供。
我的代码如下:
SqlParameter outIdStorageParam = new SqlParameter("@ID_Storage", SqlDbType.Int) {
Direction = ParameterDirection.Output
};
try {
await Database.ExecuteSqlCommandAsync(
"exec dbo.LoadChargeCarrierOnForklift @ID_Carrier, @ForkliftName, @User",
new SqlParameter("@ID_Carrier", id_Carrier),
new SqlParameter("@ForkliftName", forkliftName),
new SqlParameter("@User", user),
outIdStorageParam
);
} catch (System.Exception ex) {
var a = ex;
throw;
}
return (int)outIdStorageParam.Value;
以下 SQL 命令有效:
USE [MyDB]
GO
DECLARE @return_value int,
@ID_Storage int
EXEC @return_value = [dbo].[LoadChargeCarrierOnForklift]
@ID_Carrier = 1,
@ForkliftName = N'ABC',
@User = N'DEF',
@ID_Storage = @ID_Storage OUTPUT
SELECT @ID_Storage as N'@ID_Storage'
SELECT 'Return Value' = @return_value
GO
我对 C# 代码中的参数做错了什么?
【问题讨论】:
标签: c# sql sql-server entity-framework