1

次のように呼び出すストアド プロシージャがあります。

string proc = "SpCreate '00111', 3";

 using (SqlCommand command = new SqlCommand(proc, conn))
 {
       command.CommandType = CommandType.Text;
       command.CommandTimeout = 1000;

       string returnCode = command.ExecuteScalar().ToString();
 }

上記の神は正常に動作します。しかし、パラメーターを追加すると、'SpCreate' の近くで間違った構文が得られます。何を与える?(以下のコードはエラーになります。)

string proc = "SpCreate '00111', @myId";

 using (SqlCommand command = new SqlCommand(proc, conn))
 {
       SqlParameter paramName = new SqlParameter("@myId", SqlDbType.Int) { Value = 3 };
       command.Parameters.Add(paramName);

       command.CommandType = CommandType.Text;
       command.CommandTimeout = 1000;

       string returnCode = command.ExecuteScalar().ToString();
 }
4

1 に答える 1

0

自分のコードのいくつかを見て、いくつかのエラーがあることに気付いた後、回答を編集しました。

CommandType を StoredProcedure に設定する必要があります。

編集:サンプルソースコードが追加されました

 string proc = "SpCreate";

 using (SqlCommand command = new SqlCommand(proc, conn))
 {
       SqlParameter paramName = new SqlParameter("@myId", SqlDbType.Int);
       paramName.Value = 3;
       command.Parameters.Add(paramName);

       command.CommandType = CommandType.StoredProcedure;
       command.CommandTimeout = 1000;

       string returnCode = command.ExecuteScalar().ToString();
 }
于 2013-02-19T18:55:44.250 に答える