我们收到服务器错误,说“参数计数与参数值计数不匹配”。任何人都知道这可能意味着什么?
我们的网站是在ASP.NET Webforms上运行DotNetNuke作为CMS。
我尝试上传旧版本的web.config文件,但自从出现错误后似乎没有更改。它不在我们最近的任何模块文件上传中,因为我从今天早上重新上载了我们更改的旧文件。
数据库中的任何更改都会导致此问题,还是必须源自代码中的错误?
感谢。
答案 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维护的临时缓存中挑选字段。