如何清除sql命令的参数缓存?

时间:2010-02-11 01:14:05

标签: c# caching enterprise-library parameters daab

我正在使用Enterprise Library的DAAB。我有这样的代码:

        Database dBase = DatabaseFactory.CreateDatabase();

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

        return dBase.ExecuteDataSet(dCommand);

如何清除参数缓存?当你有两个名字相似的SP时,似乎“GetUser”和“GetUser_Data”它保存了第一个参数,当你在它之后调用第二个参数时,会导致“参数数量与存储过程的值不匹配”错误。

1 个答案:

答案 0 :(得分:2)

我无法从你的代码中看出来,但听起来你正在重用DbCommand对象,并且它第二次附加了更多参数。尝试为每个查询创建一个新的DbCommand实例。

或者,你可以做一个DbCommand.DbParameterCollection.Clear()?