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

C# 如何清除sql命令的参数缓存?,c#,caching,enterprise-library,parameters,daab,C#,Caching,Enterprise Library,Parameters,Daab,我正在使用企业图书馆的DAAB。我有这样的代码: Database dBase = DatabaseFactory.CreateDatabase(); DbCommand dCommand = dBase.GetStoredProcCommand(StoredProcedureName, Parameters); dCommand.CommandTimeout = CommandTimeout; return dBase.Exe

我正在使用企业图书馆的DAAB。我有这样的代码:

        Database dBase = DatabaseFactory.CreateDatabase();

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

        return dBase.ExecuteDataSet(dCommand);

如何清除参数缓存?似乎当您有两个具有类似名称的SP时,例如“GetUser”和“GetUser_Data”,它会保存第一个SP的参数,这会导致“参数数量与存储过程的值不匹配”调用后面的第二个对象时出错。

我无法从代码中分辨出来,但听起来好像是在重用DbCommand对象,第二次它会附加更多的参数。尝试在每个查询中创建一个新的DbCommand实例


或者,您可以只执行一个DbCommand.DbParameterCollection.Clear()?

我已经尝试过DbCommand dCommand=new DbCommand,但是它不允许我这样做,我得到了编译错误。您看到的代码是我在数据访问层中调用的方法,它传递SP名称和参数值。