3

C# のパラメーターを使用して SQL Server 2008 で記述された単純なストアド プロシージャを呼び出していますが、 「プロシージャまたは関数 'AddYear' はパラメーター '@mYear' を予期していますが、指定されていません」というエラーが表示されます。

このコードの何が問題なのか、いくつか試してみましたが、成功しませんでした。

    SqlCommand AddEquip = new SqlCommand("AddYear", dbConn);
    SqlDataReader rdrEquip;

    SqlParameter mP = new SqlParameter("@mYear",SqlDbType.VarChar ) ;

    mP.Value = "1990";

    AddEquip.Parameters.Add(mP);


    rdrEquip = AddEquip.ExecuteReader();  

-- パラメータ名と型は、プロシージャで使用するものと同じです。

4

3 に答える 3

12

SqlCommandストアドプロシージャとして設定するのを忘れたようです。

SqlCommand AddEquip = new SqlCommand("AddYear", dbConn);
AddEquip.CommandType = CommandType.StoredProcedure;
于 2012-08-11T03:29:37.613 に答える
0

パラメータをSqlParameterに追加する必要があります。例:

mP = new SqlParameter("@mYear", SqlDbType.VarChar, PARAMETER_HERE);
于 2012-08-10T11:04:51.320 に答える
-3

Storedprocedure がパラメータを期待している場合は、それに sqlcommand オブジェクトを渡す必要があります

 SqlParameter[] param = new SqlParameter[0];
            param[0] = new SqlParameter("@mYear", "1990");
rdrEquip = SqlHelper.ExecuteReader(Con, CommandType.StoredProcedure, "SPC_proc", param);


ここでは sqlhelper クラスを使用しています。

于 2012-08-10T11:08:04.860 に答える