MVC 5 調用存儲過程參數配置方法-Procedure or function 'UP_***' expects parameter '@****', which was not supplied.
通過Database.SqlQuery調用SQL2016的存儲過程,傳入參數,返回結果集合。總是報如下錯誤
Msg 201, Level 16, State 4, Procedure UP_***, Line 0 [Batch Start Line 15]
Procedure or function 'UP_***' expects parameter '@****', which was not supplied.
總結如下:
1.調用的參數sql里除了包括存儲過程外,還需要包含參數的名稱
2.參數的順序必須要和存儲過程里參數的順序一模一樣,否則就會報錯。(參數名稱可以和存儲過程里的名稱可以不一樣,順序必須一模一樣,數據庫sp_executesql是通過參數順序來匹配的,而不是參數的名稱來匹配)
string sql = @" UP_存儲過程名稱 @參數1,@參數2,@參數3,@參數4"; var sqlParams = new SqlParameter[] { new SqlParameter("@參數1", 2), new SqlParameter("@參數2", 1), new SqlParameter("@參數3", 50), new SqlParameter("@參數4", 1)) }; return View(db.Database.SqlQuery<Poesy>(sql, sqlParams).ToList());