• 问题
在做机房重构下机时,数据库执行命令报错:Parameter ‘@CardCash’ must be defined
译:必须定义参数“@CardCash”:
• 思考
出现这个错误的第一个反应,必然是去查看是否自己的数据库和传参数的实体以及UI层,B层的参数是否写错了,都仔细检查了一遍,并没有出错,确实是定义的CardCash。
并且进行断点调试,发现参数已经从B层传进D层了,也传到MySQLHelper这个类了,怎么到最后执行命令的时候却报异常呢?
• 解决
小编百思不得其解,请来了我们期的大佬,经过大佬的细心调试和研究,终于找到了小编的问题所在。
原来是小编在传参是多敲了一个空格,也就是在赋实参时写成了“@CardCash=CardCashEntity. CardCash”。
也就是实参写成了“ CardCash”,在CardCash前边有一个空格,导致在代码执行时,传的实参“_CardCash” 为:
“空格+CardCash”与数据库中的字段“CardCash”不匹配,所以识别不到这个参数,提示“Parameter’@CardCash’ must be defined.”
• 总结
敲代码要细心,按照代码规范编程,否则会出现意想不到的bug——不过也可能是帮助你成长的台阶呦,毕竟没有问题才是最大的问题,解决问题才能更好的成长,当你遇到太多坑之后自然而然的对出现的bug有一种特别的敏感。
哈哈哈,不过为了工作效率,还是不要犯这种低级错误了,有可能会把你搞崩溃!
细心、规范,认真编程吧!