Как очистить кэш параметров команды sql? - PullRequest
0 голосов
/ 11 февраля 2010

Я использую DAAB Enterprise Library. У меня есть такой код:

        Database dBase = DatabaseFactory.CreateDatabase();

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

        return dBase.ExecuteDataSet(dCommand);

Как очистить кеш параметров? Кажется, что когда у вас есть два SP с одинаковыми именами, например, «GetUser» и «GetUser_Data» сохраняет первые параметры, что приводит к ошибке «количество параметров не соответствует значению хранимой процедуры» при вызове второго после него.

1 Ответ

2 голосов
/ 11 февраля 2010

Я не могу сказать из вашего кода, но похоже, что вы повторно используете объект DbCommand, и он присоединяет больше параметров во второй раз. Попробуйте создавать новый экземпляр DbCommand для каждого запроса.

В качестве альтернативы, вы можете просто сделать DbCommand.DbParameterCollection.Clear ()?

...