MVC#使用参数调用存储过程第一个参数未被识别

MVC#使用参数调用存储过程第一个参数未被识别,c#,asp.net-mvc,stored-procedures,C#,Asp.net Mvc,Stored Procedures,谁能给我解释一下吗?我有一个存储过程: ALTER proc [dbo].[Invoice_GetHomePageInvoices] ( @AreaIdList varchar(max) , @FinancialYearStartDate datetime = null , @FinancialYearEndDate datetime = null ) as 在代码中,我试图这样称呼它: var areasString = new SqlParameter("A

谁能给我解释一下吗?我有一个存储过程:

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);
var-areasString=new-SqlParameter(“AreaIdList”,“1,2”);
var startDate=新的SqlParameter(“FinancialYearStartDate”,financialYear.startDate);
var endDate=新的SqlParameter(“FinancialYearEndDate”,financialYear.endDate);
返回_db.Database.SqlQuery(“发票_GetHomePageInvoices”,区域字符串,开始日期,结束日期);
我得到了这个错误:

过程或函数“Invoice\u GetHomePageInvoices”需要参数 “@AreaIdList”,未提供


说什么?我已经提供了这个参数。有人能告诉我如何修复吗?

可能需要参数值:

return _db.Database.SqlQuery<HomePageInvoice>("Invoice_GetHomePageInvoices", areasString.Value, startDate.Value, endDate.Value)
return\u db.Database.SqlQuery(“Invoice\u GetHomePageInvoices”,areasString.Value,startDate.Value,endDate.Value)

它可能期望参数值:

return _db.Database.SqlQuery<HomePageInvoice>("Invoice_GetHomePageInvoices", areasString.Value, startDate.Value, endDate.Value)
return\u db.Database.SqlQuery(“Invoice\u GetHomePageInvoices”,areasString.Value,startDate.Value,endDate.Value)

您需要这样称呼它:

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);
var-areasString=new-SqlParameter(“AreaIdList”,“1,2”);
var startDate=新的SqlParameter(“FinancialYearStartDate”,financialYear.startDate);
var endDate=新的SqlParameter(“FinancialYearEndDate”,financialYear.endDate);
返回_db.Database.SqlQuery(“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);
返回_db.Database.SqlQuery(“EXEC Invoice_GetHomePageInvoices{0},{1},{2}”,“1,2”,financialYear.StartDate,financialYear.EndDate);

您需要这样称呼它:

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);
var-areasString=new-SqlParameter(“AreaIdList”,“1,2”);
var startDate=新的SqlParameter(“FinancialYearStartDate”,financialYear.startDate);
var endDate=新的SqlParameter(“FinancialYearEndDate”,financialYear.endDate);
返回_db.Database.SqlQuery(“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);
返回_db.Database.SqlQuery(“EXEC Invoice_GetHomePageInvoices{0},{1},{2}”,“1,2”,financialYear.StartDate,financialYear.EndDate);

您是否尝试过将@符号放在变量名称前面?您是否尝试过将@符号放在变量名称前面?如果您只是传递值,那么创建参数的意义何在。反正也不行。你说得对,我只是觉得你把语法搞错了。您在这里使用DAAB吗?如果您只传递值,那么创建参数有什么意义呢。反正也不行。你说得对,我只是觉得你把语法搞错了。你在这里用DAAB吗?我只能得到简短的答案才能在这里工作。其他一切似乎都不起作用。另外,在指定参数时,我必须全部指定它们,即使存储过程中存在默认值。其他一切似乎都不起作用。另外,在指定参数时,我必须全部指定它们,即使存储过程中存在默认值。