• 问题

在做机房重构下机时,数据库执行命令报错:Parameter ‘@CardCash’ must be defined
 
译:必须定义参数“@CardCash”:

【C#机房重构】都是空格惹的祸——Parameter ‘@CardCash‘ must be defined

• 思考

出现这个错误的第一个反应,必然是去查看是否自己的数据库和传参数的实体以及UI层,B层的参数是否写错了,都仔细检查了一遍,并没有出错,确实是定义的CardCash。
 
并且进行断点调试,发现参数已经从B层传进D层了,也传到MySQLHelper这个类了,怎么到最后执行命令的时候却报异常呢?

• 解决

小编百思不得其解,请来了我们期的大佬,经过大佬的细心调试和研究,终于找到了小编的问题所在。

原来是小编在传参是多敲了一个空格,也就是在赋实参时写成了“@CardCash=CardCashEntity. CardCash”。
 
也就是实参写成了“ CardCash”,在CardCash前边有一个空格,导致在代码执行时,传的实参“_CardCash” 为:
“空格+CardCash”与数据库中的字段“CardCash”不匹配,所以识别不到这个参数,提示“Parameter’@CardCash’ must be defined.”

• 总结

敲代码要细心,按照代码规范编程,否则会出现意想不到的bug——不过也可能是帮助你成长的台阶呦,毕竟没有问题才是最大的问题,解决问题才能更好的成长,当你遇到太多坑之后自然而然的对出现的bug有一种特别的敏感。

哈哈哈,不过为了工作效率,还是不要犯这种低级错误了,有可能会把你搞崩溃!

细心、规范,认真编程吧!

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-12-28
  • 2021-05-25
  • 2022-01-26
  • 2021-06-09
  • 2021-09-22
  • 2022-12-23
猜你喜欢
  • 2021-12-01
  • 2022-12-23
  • 2022-12-23
  • 2021-12-27
  • 2021-09-22
  • 2022-02-25
  • 2022-02-23
相关资源
相似解决方案