変更された行の量を返す前にこのメソッドを使用しました。私は挿入メソッドを実行するために、ストアドプロシージャで挿入が正常に実行されますが、ExecuteNonQueryからの戻り値は常に-1を返します。c#:ExecuteNonQuery()は-1を返します
int ret = 0;
using (SqlConnection conn = new SqlConnection(this.ConnectionString))
{
using (SqlCommand cmd = new SqlCommand(QueryName, conn))
{
conn.Open();
if (Params != null)
cmd.Parameters.AddRange(Params);
cmd.CommandType = CommandType.StoredProcedure;
ret = cmd.ExecuteNonQuery();
conn.Close();
}
}
return ret;
はなぜか-1の代わりに、実際の行数変更:ここで
は、私のC#のコードですか?
テーブルの変更は実際には行われますが、-1が得られていますか? – Tudor
おそらく、あなたのsprocが返すものは何でも返します。それ以外の場合は-1となります。 –
実際にプロファイラを使ってSQLコールを捕捉し、手動で実行して実際に変更された行番号を確認しましたか? –