SQL参数丢失,但不丢失 [英] SQL Parameter missing, but not missing
问题描述
我遇到了一个错误没有意义的问题.立即窗口显示该参数未丢失,但调试器显示该参数丢失.
错误:过程或函数"cpWeeklyPharmDataintDrvr"需要未提供的参数"@companyID".
立即窗口:
?cmd.Parameters ["@ companyID"].Value
1356
I am running into an issue where the error does not make sense. The immediate window says that the parameter is not missing but the debugger says that it is missing.
Error: Procedure or function ''cpWeeklyPharmDataintDrvr'' expects parameter ''@companyID'', which was not supplied.
Immediate Window:
?cmd.Parameters["@companyID"].Value
1356
SqlCommand cmd = new SqlCommand("cpWeeklyPharmDataintDrvr", sqlC);
SqlConnection sqlC = new SqlConnection(ConfigurationManager.ConnectionStrings["Reports"].ToString());
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.
DataTable d = new DataTable();
d.Load(dR);
sqlC.Close();
推荐答案
首先添加...
First Add...
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@CompanyID",CompanyID);
//add your other parameters also
可能是您忘记了声明@companyID
并确保您正在处理像...这样的SP.
存储过程
May be you have forget to Declare @companyID
And Make sure You are dealing with SP like...
Stored Procedure
CREATE dbo.mySP
@companyID INT,
@companyName NVARCHAR
<--Here You need to declare all parameters-->
AS
BEGIN
INSERT INTO TBL VALUES(@companyID,@companyName)
END
希望这个帮助
------------------
Pratik Bhuva
Hope This Help
------------------
Pratik Bhuva
在存储过程中添加参数@companyID
Include the parameter @companyID in your Stored Procedure
只需删除
如果(Master.CompanyId> 0)
并检查
just remove
if (Master.CompanyId > 0)
and check it
这篇关于SQL参数丢失,但不丢失的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!