古いC#アプリケーションをC#(および.NETフレームワーク)の最新バージョンに移行中であり、テスト中に問題が発生しました。大胆なデータアクセスコード。C#SqlParameter 0が 'default'に変更されました
具体的には、「@BalanceForward」という名前のSqlParameterを作成しています。この特定のケースでは、値をゼロに設定していますが、明らかに他の値であってもかまいません。ストアドプロシージャを実行するとき、プロシージャが '@BalanceForward'というパラメータを期待していたが、指定されていないというエラーが戻ってきました。奇妙なあなたが見ることができるように
私たちは、SQLトレースを実行し、以下を見て...
幹部usp_Transaction_Create @ ID =「ダミーの値」、@ BalanceForward =デフォルト
、ゼロ金額は変更されます舞台裏では「デフォルト」になっています。これは.NETフレームワークの動作の変更でなければなりません。まだ稼働中のバージョンからSQLトレースを見ると、ゼロ金額は0.00として渡されます。
これを無効にする方法はありますか?「デフォルト」ではなく実際の値を渡すだけですか?これが起こる可能性を説明するために、何百ものストアドプロシージャを実際に実行する必要はありません。
このエラーを引き起こすコードがないと、何も言い難いです。この基本機能が変更されていないことを確かめてください。 – Steve
どのようにパラメータの値を設定していますか? http://stackoverflow.com/questions/5356862/sqlparameter-with-default-value-set-to-0-doesnt-work-as-expectedを参照してください。 – Nikki9696