参数未传递,但变量具有参数

时间:2013-08-31 23:31:28

标签: c# asp.net

我有另一个问题......这是代码

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;

没有参数方向

2 个答案:

答案 0 :(得分:2)

我发现我的代码出了什么问题......我忘了一行,一行代码......

cm.CommandType = CommandType.StoredProcedure;

难怪为什么它一直说我没有提供参数,它不知道我在做什么......我想这是一个经典的时刻,可以说明错过的一行代码如何导致数小时时间试图解决它。

答案 1 :(得分:0)

首先,我会检查randomnumber是否为null,如果是,它看起来会缺少参数。