0

Enterprise Library の DAAB を使用しています。次のようなコードがあります。

        Database dBase = DatabaseFactory.CreateDatabase();

        DbCommand dCommand = dBase.GetStoredProcCommand(StoredProcedureName, Parameters);
        dCommand.CommandTimeout = CommandTimeout;

        return dBase.ExecuteDataSet(dCommand);

パラメータキャッシュをクリアするにはどうすればよいですか? 「GetUser」と「GetUser_Data」などの類似した名前の 2 つの SP がある場合、最初のパラメーターが保存され、呼び出し時に「パラメーターの量がストアド プロシージャの値と一致しません」というエラーが発生するようです。それに続く2本目。

4

1 に答える 1

2

あなたのコードからはわかりませんが、DbCommand オブジェクトを再利用しているようで、2 回目にはより多くのパラメーターをアタッチしています。クエリごとに新しい DbCommand インスタンスを作成してみてください。

または、 DbCommand.DbParameterCollection.Clear() を実行できますか?

于 2010-02-11T01:21:55.147 に答える