参数计数与参数值计数不匹配

时间:2010-04-21 19:48:40

标签: asp.net ado.net exception-handling web-config dotnetnuke

我们收到服务器错误,说“参数计数与参数值计数不匹配”。任何人都知道这可能意味着什么?

我们的网站是在ASP.NET Webforms上运行DotNetNuke作为CMS。

我尝试上传旧版本的web.config文件,但自从出现错误后似乎没有更改。它不在我们最近的任何模块文件上传中,因为我从今天早上重新上载了我们更改的旧文件。

数据库中的任何更改都会导致此问题,还是必须源自代码中的错误?

感谢。

3 个答案:

答案 0 :(得分:5)

某些SQL查询或存储过程指定了更多参数,然后接收参数值。

这样的事情:

command.CommandText = "EXEC test @a";
command.Parameters.Add("@a", "a");
command.Parameters.Add("@b", "b");

即。看看数据库方案。它改变了吗?存储过程是否已更改?

答案 1 :(得分:4)

我发现如果您使用的是具有默认值的参数,则某些库无法处理。

例如,我们有一个应用程序使用较旧版本的Microsoft Enterprise Library数据访问方法,该方法允许您将参数作为数组传递。

如果数组中的项目数量与存储过程中的参数数量不完全匹配,则会失败,无论某些项目是否为“可选”。

在这种情况下,必须使用直接ADO.NET并使用cmd.Parameters.AddWithValues("@parameterName", value)

所需存储过程参数的语法。使用此方法时,您不必添加“可选”存储过程参数的命令参数。

答案 2 :(得分:0)

我遇到了同样的问题,我发现它是从MySQLHelper维护的临时缓存中挑选字段。