我遇到了一個錯誤沒有意義的問題。立即窗口說該參數不會丟失,但調試器說它缺失。 CP沒有人爲此答覆。SqlDataReader需要一個不會丟失的參數
Error: Procedure or function 'cpWeeklyPharmDataintDrvr' expects parameter '@companyID', which was not supplied.
即時窗口:
cmd.Parameters["@companyID"].Value 1356
SqlCommand cmd = new SqlCommand("cpWeeklyPharmDataintDrvr", sqlC);
sqlC.Open();
cmd.Parameters.Add(new SqlParameter("@companyID", SqlDbType.Int)).Value = Master.CompanyId;
cmd.Parameters.Add(new SqlParameter("@sStartDate", SqlDbType.NVarChar, 30)).Value = Master.StartDate;
cmd.Parameters.Add(new SqlParameter("@sEndDate", SqlDbType.NVarChar, 30)).Value = Master.EndDate;
if (Master.RegionId > 0)
cmd.Parameters.Add(new SqlParameter("@region", SqlDbType.Int)).Value = Master.RegionId;
if (Master.DistrictId > 0)
cmd.Parameters.Add(new SqlParameter("@district", SqlDbType.Int)).Value = Master.DistrictId;
if (Master.StoreId . 0)
cmd.Parameters.Add(new SqlParameter("@store", SqlDbType.NVarChar)).Value = Master.StoreId.ToString();
SqlDataReader dR = cmd.ExecuteReader(); // This is where error occurs.
只有當Master.CompanyID大於零時,纔會將參數添加到集合中。但是SP不喜歡這種選擇性。應始終指定此參數。 – Steve
修改了代碼,但仍然收到相同的錯誤。即時窗口報告該值確實沒有丟失。 – Spitfire19
是否有任何先前的參數被跳過?你也指定你的命令是一個存儲過程? – lincolnk