我正在使用Enterprise Library的DAAB。我有这样的代码:
Database dBase = DatabaseFactory.CreateDatabase();
DbCommand dCommand = dBase.GetStoredProcCommand(StoredProcedureName, Parameters);
dCommand.CommandTimeout = CommandTimeout;
return dBase.ExecuteDataSet(dCommand);
如何清除参数缓存?当你有两个名字相似的SP时,似乎“GetUser”和“GetUser_Data”它保存了第一个参数,当你在它之后调用第二个参数时,会导致“参数数量与存储过程的值不匹配”错误。
答案 0 :(得分:2)
我无法从你的代码中看出来,但听起来你正在重用DbCommand对象,并且它第二次附加了更多参数。尝试为每个查询创建一个新的DbCommand实例。
或者,你可以做一个DbCommand.DbParameterCollection.Clear()?