我有另一个问题......这是代码
public int CheckForDuplicateRandomOrderNumber()
{
int randomNumber = GenerateRandomOrderNumber();
string strCmdCheckForDuplicates = "sp_Check$For$Duplicate$Order$Numbers";
SqlCommand cm = new SqlCommand(strCmdCheckForDuplicates, cn);
SqlParameter myPm;
myPm = cm.Parameters.Add("@OrderNumber", SqlDbType.Int);
myPm.Value = randomNumber;
myPm.Direction = ParameterDirection.Input;
cn.Open();
cm.ExecuteReader();
cn.Close();
if (randomNumber == 1)
{
return randomNumber;
}
else
return 0;
}
当我运行这段代码时,我得到一个错误,说存储过程期望传递参数,当我调试变量时传递参数。我不知道为什么会这样...... 和另一个与此有关的问题...... 当我写这个......
cm.parameters.add(new sqlparameter("@OrderNumber", sqldbtype.int)).value = randomNumber;
没有参数方向
答案 0 :(得分:2)
我发现我的代码出了什么问题......我忘了一行,一行代码......
cm.CommandType = CommandType.StoredProcedure;
难怪为什么它一直说我没有提供参数,它不知道我在做什么......我想这是一个经典的时刻,可以说明错过的一行代码如何导致数小时时间试图解决它。
答案 1 :(得分:0)
首先,我会检查randomnumber是否为null,如果是,它看起来会缺少参数。