1

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

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;

没有参数方向

4

2 回答 2

2

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

cm.CommandType = CommandType.StoredProcedure;

难怪它一直说我没有提供参数,它不知道我在做什么......我想这是一个经典的时刻,它展示了一个错过的代码行如何导致数小时的尝试弄明白。

于 2013-09-01T14:06:23.443 回答
0

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

于 2013-09-01T02:29:15.743 回答