1

今週発生し始めた Web アプリケーションで奇妙な動作が発生しました。SQL Server から InputOutput パラメータを取得できなくなる前に機能していたとしても。ほぼすべての手順の構文は同じです。プロセスを続行するには、テーブルから Identity 値を取得する必要があります。

SqlParameter paramId = new SqlParameter("@Id", objMyValueId);
paramId.Direction = ParameterDirection.InputOutput;

ExecuteNonQuery を使用して SP を実行した後、常に null 値 (または InputOutput パラメーターで設定された任意の値) を取得します。

paramId.Value --> (Always null)

コレクションがそのまま残り、変更できないようです。この動作に影響を与える可能性のある接続文字列への Sql Server または構成パラメーターの設定はありますか? 私が実行するすべてのストアドプロシージャで発生し、以前は機能していました。

4

1 に答える 1

0

まあ、私は(最終的に)それは私たちのせいであり、エラーは明らかであるという結論に達しました. SVN でコミットを追跡したところ、チームの誰かがデータベース インタラクション アセンブリのコアに新しい機能を組み込んでいることがわかりました。データ層で一部のコードを繰り返さないようにするために、ほとんどのパラメーターは .net 型から推測されます。シンプルに保ち、エンジンのレイヤー (Sql Server、Oracle、mySql など) を分離します。コミットの 1 つで、パラメーター挿入関数のオーバーライドが行われました。これにより、不適切なクローンが原因で「方向」値が失われます。それが問題です。データベース レイヤーのソース コードと、コマンドへのパラメーターの正確な挿入へのデバッグが含まれていることがわかりました。方向の値が失われていることがわかりました。このコミュニティがどれだけ私を助けてくれるか、いつも感謝しています。

于 2013-08-15T19:11:07.717 に答える