为过程或函数指定了过多的参数
总结刚结束的机房合作只有一种感觉那就是:“好多好多东西自己都不会,又有好多东西在这次合作中学到了,总之就是痛并快乐着!”
接下来就谈谈在退卡时调用存储过程PROC_ReturnCard时出现错误及解决过程。图如下:
刚开始的时候就考虑到D层的参数是不是写的过多了,于是在数据库中查几遍参数都一样啊!为什么就是不行呢?于是上网查了下:有以下几种情况
一、如果你的参数添加是在循环体内完成第2次时就会重复添加,此时触发参数过多异常
解决方法1,参数在循环体外添加,for内部只赋值和取返回值
解决方法2,每次循环清空参数Parameters.Clear();
二、普通调用
1、存储过程调用错了(一般是存储过程名字字母错误)。
2、用户创建的存储过程与系统存储过程同名。如果以sp开头,用户创建的存储过程,总会先检查master数据库(即使该存储过程已用数据库名称限定)。 如果用户创建的存储过程与系统存储过程同名,则永远不执行用户创建的存储过程 ,因此自定义存储过程不要与系统存储过程同名
3、超过指定的参数。以上情况你的代码中均没有出现,目前最大的可能性是你连接的数据库中存储过程中的参数确实没有那么多,而你改的是另一个数据库中的存储过程!
4、清空参数Parameters.Clear();
由于我的属于第二种情况经过以上的排查感觉,第一种存储过程名称写错绝对不可能(自我感觉良好)第二种也排除,因为我严格按命名规范来的。第三种情况已经查过好多次数据库了没错啊!因此就开始找第四中的解决办法,结果还是不行。只好找人帮忙他在程序运行时,突然发现我调用的存储过程的名字不对,这时我立刻晕死!明明是PROC_ReturnOut 而我却写成了PROC_SelectCheckOut这么低级的错误,竟然让我忙活了一下午。更不可原谅的是自己就没有检查却肯定这是对的,没有验证就下结论,这定是死罪!
因此通过这个小小的错误,必须得做自我反思,今后在做事情的时候千万不要以“我认为、、、”来下定论。一定要经过实际排查不放过任何细节,不能凭空想象,只有做过了才有资格发表评论。就让我们以小见大来看待这个问题并做出反思!
- 11-06Hadoop是目前大数据领域最主流的一套技术体系
- 11-06大数据和人工智能:三个真实世界的用例
- 11-06为什么说,大数据与行业专家是“共生”关系?
- 11-06Python数据可视化:箱线图多种库画法
- 11-06这种思路讲解HDFS你肯定没见过?快速入门Hadoop必备
- 11-06媲美Pandas的数据分析工具包Datatable
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 12-05亚马逊推出新一代基础模型 任意模态生成大模
- 12-05OpenAI拓展欧洲业务 将在苏黎世设立办公室
- 12-05微软质疑美国联邦贸易委员会泄露信息 督促其
- 12-05联交所取消宝宝树上市地位 宝宝树:不会对公
- 12-04企业微信致歉:文档打开异常已完成修复