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

自分のコードに問題があったことがわかりました...1行、1行の小さなコード行を忘れていました...

cm.CommandType = CommandType.StoredProcedure;

私がパラメータを提供していない、私が何をしているのかわからなかったと言い続けたのも不思議ではありません...これは、コードの1行の欠落が試行に何時間もかかる可能性があることを示す古典的な瞬間だと思いますを解決する。

于 2013-09-01T14:06:23.443 に答える
0

まず、乱数が null でないことを確認します。null の場合、パラメーターが欠落しているように見えます。

于 2013-09-01T02:29:15.743 に答える