我想用输入参数调用这个存储过程:
proc [dbo].[Invoice_GetHomePageInvoices] (
@FinancialYearStartDate datetime = null
, @FinancialYearEndDate datetime = null
问题是我通常从我的代码中调用存储过程的方式是:
return _db.Database.SqlQuery<HomePageInvoice>(string.Format("EXEC Invoice_GetHomePageInvoices @FinancialYearStartDate = '{0}', @FinancialYearEndDate = '{1}'", financialYear.StartDate.ToString(), financialYear.EndDate.ToString()));
所以这是行不通的,因为我基本上已经将我的日期时间转换为字符串。
我到底应该怎么做?
最佳答案
你应该使用sql参数,基本上是这样的:
var startDate = new SqlParameter("FinancialYearStartDate", dateTimeValueHere);
var endDate = new SqlParameter("FinancialYearEndDate", dateTimeValueHere);
return _db.Database.SqlQuery<HomePageInvoice>("Invoice_GetHomePageInvoices", startDate, endDate);
关于c# - 如何从需要日期时间的 MVC 调用存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10182395/