发现问题
之前有一篇博客是因为存储过程中没有添加相应的函数,导致出现了“过程或函数 ‘news_selectByCaId’ 需要参数 ‘@caid’,但未提供该参数”,这次继续出现了这样一个问题,但是出现的错误就不再过程函数中了,而且在DAL层,报错在SQLHelper层。
分析问题
有了上一次的经历之后,立马可以定位是在传递数据库参数处出现了问题,又因为SQLHelper层在之前连接数据库的时候能够正常进行,所以,可以排除,SQLHelper层的出错的可能性,只剩下Web层、BLL层、DAL层、Model以及数据库,然后在数据库中传递参数,可以将数据调取出来,这说明数据库中没有错误,然后看BLL层,因为Web层是外观层,如果编写错误会直接停留到该层,故也可以排除,然而BLL层是业务逻辑层,而在敲击牛腩新闻发布系统的时候BLL层只用到了一个引用DAL层的作用,所以BLL层也排除,最后只在DAL的具体方法中找错误。
解决问题
因为报出的错误是“过程或函数 ‘news_selectByCaId’ 需要参数 ‘@caid’,但未提供该参数”,既然Web层、BLL层、Model、SQLHelper以及数据库都排除了,那么要通过存储过程news_selectByCaId在数据库中调取数据的错误就出现在DAL层的@caid上面,然后就去DAL层里面找,找存储过程函数为“new_selectByCaid”的,然后将其下面的SqlParameter更改成@caid就可以了。
个人总结
遇到问题千万别慌,然后仔细着去文中找到出错的地方,遇山挖山,遇海填海。一步一步解决问题
end
谢谢您的阅读,如有错误,还望您给出指正。