MVC C# 调用带有参数的存储过程 第一个参数未被识别
本文关键字:参数 第一个 识别 存储过程 调用 MVC | 更新日期: 2023-09-27 18:31:15
有人可以向我解释一下吗?我有这个存储的过程:
ALTER proc [dbo].[Invoice_GetHomePageInvoices] (
@AreaIdList varchar(max)
, @FinancialYearStartDate datetime = null
, @FinancialYearEndDate datetime = null
) as
在代码中,我试图这样称呼它:
var areasString = new SqlParameter("AreaIdList", "1,2");
var startDate = new SqlParameter("FinancialYearStartDate", financialYear.StartDate);
var endDate = new SqlParameter("FinancialYearEndDate", financialYear.EndDate);
return _db.Database.SqlQuery<HomePageInvoice>("Invoice_GetHomePageInvoices", areasString, startDate, endDate);
我收到此错误:
过程或函数"Invoice_GetHomePageInvoices"需要参数 "@AreaIdList",没有提供。
说什么?我已经提供了该参数。有人可以给我一些关于如何解决的见解吗?
你需要这样称呼它:
var areasString = new SqlParameter("AreaIdList", "1,2");
var startDate = new SqlParameter("FinancialYearStartDate", financialYear.StartDate);
var endDate = new SqlParameter("FinancialYearEndDate", financialYear.EndDate);
return _db.Database.SqlQuery<HomePageInvoice>("EXEC Invoice_GetHomePageInvoices @AreaIdList, @FinancialYearStartDate, @FinancialYearEndDate", areasString, startDate, endDate);
我相信你也可以缩短一点,比如:
return _db.Database.SqlQuery<HomePageInvoice>("EXEC Invoice_GetHomePageInvoices {0}, {1}, {2}", "1,2", financialYear.StartDate, financialYear.EndDate);
它可能需要参数值:
return _db.Database.SqlQuery<HomePageInvoice>("Invoice_GetHomePageInvoices", areasString.Value, startDate.Value, endDate.Value)