2014-01-29 70 views
0

從下面的代碼我得到@StartDate沒有提供錯誤,但通過這兩個日期範圍參數步進參數有一個有效值:存儲過程預計正在傳遞

SqlParameter[] ps = new SqlParameter[] 
{ 
    new SqlParameter("@StartDate", startDate), 
    new SqlParameter("@EndDate", endDate) 
}; 

List<AttendanceReportViewModel> res = db.Database.SqlQuery<AttendanceReportViewModel>(Local.queries["AttendanceReport"], ps).ToList(); 

return res; 

存儲過程:

ALTER PROCEDURE [dbo].[GetAttendanceReport] 
    @StartDate datetime, 
    @EndDate datetime 
AS 
BEGIN 
    SET NOCOUNT ON; 

    exec [REMOTE_SRV].LWD.dbo.ReportAttendance_sp @StartDate = @StartDate, @EndDate = @EndDate; 
END 

當我在SQL Server Management Studio中執行存儲過程但不在應用程序內時,一切正常。

+0

什麼是你referecing到參數的類型? – cubitouch

+0

這兩個參數都是'DateTime' – Lee

+0

TSQL和.NET的觀點? – cubitouch

回答

1

如果您Local.queries["AttendanceReport"]看起來是這樣的:

Local.queries["AttendanceReport"] = "yourProc @StartDate, @EndDate" 

那就試試這個:

List<AttendanceReportViewModel> res = db.Database.SqlQuery<AttendanceReportViewModel(
    Local.queries["AttendanceReport"], 
    new SqlParameter("StartDate", startDate), 
    new SqlParameter("EndDate", endDate) 
).ToList(); 
+0

這工作,謝謝。我也錯過了我的參數之間的逗號。 – Lee