标题: 执行存储过程时可能碰到的错误小结[原创]
- 常建昭 2005-04-05 07:59 阅读:1592
- 评论:4 查看评论 | 添加评论
执行存储过程时可能碰到的错误小结
常建昭
在前一段时间写作业的时候,用了不少的存储过程,而在调用存储过程的时候也出现了不少的错误。而且有许多错误都是犯了不下一次的。。每次都能浪费一二个小时,[图片]。。现在做个小总结,希望当大家遇到存储过程调用出错,数据层返回不到数据,产生类似NullReferenceException等问题,而又没有头绪之时,不妨来比较比较,看是不是能给你点主意。。
注:这个小结并不是说代表所有可能性的错误。。只是我所犯过的错误,或许你认为很低级,但低级的错误就是老Gates也会犯。。[图片]
我所犯过的错误主要有4点:
1. Stored Procedure的名字拼写。
这是最低级的错误了,呵呵,一定要注意拼写。我曾经用了大半天的时间去找错误。。当发现是存储过程的名字拼错时,我真的去[图片]了。。。现在实验室的铁柜上还有个坑呢。。。
2. 调用Stored Procedure时,代码写错。
当在你的代码中调用这些可爱的存储过程时,一定要小心你的代码执行正确。比如说,在你的数据层,你用的是你自己写的调用方法,要注意第1点的错误,注意返回的类型,注意参数的格式; 而如果你比较懒,又要求安全性的调用方法(比如说我,[图片]),就会使用到微软的Microsoft Data Access Application Block,这时候你需要注意到调用存储过程的方法,看清方法返回的类型以及方法的参数。选择适合的方法才能发挥这个block的效率哦。
3. Web Service 引用出错
如果你没有使用Web Service,那就省略这点好了,不过建议你看一看,因为你以后一定会用到Web Service的。首先要注意,Web Reference 在每次改变内容后,要Update及时。否则真的会很冤的。。。如果你有多个Web Service,则要确定update你的web reference了。。。。。在这里我要强调的是,Smart Device和Asp.NET的Web Service引用是不同的,Smart Device使用的是.NET Compact Framework,而Asp.NET是.NET Framework,关于引用的不同,网上很多文章,过段时间我也会再写篇详细点的文章解释。我在这里犯的错误是由于在进行我的PPC 客户端设计时,由于Web Service的引用出错,而连接不到Web Service.[图片] ,另一点出错,错在了返回的DataSet出现了PlatformNotSupportedException,这是由于我是使用英文版的.NET VS在中文OS下开发英文PPC,真拗口。解决方法是重新Data的cultureInfo属性即可。(注:Web Service只支持返回DataSet,不支持DataTable之类数据)
4. Permission 问题
这点最让人生气,一切看似都正常,完全没错,可就是无法执行,最后发现竟然是忘记设置存储过程的权限。。真是郁闷。。我使用的是Sql Server 2000,权限设置就在你的stored procedure中。。别忘了,每次创建完一个stored procedure后,最好检查一下权限,反正按一个按钮,很方便,但却能保证你不会花上一二个小时去检查其它错误。。。[图片]
好了,以上就是我在这次作业中,碰到的相关的调用存储过程的问题。希望能帮助到大家。与此同时,如果你有碰到过其它的问题,不妨也贴出来,让大家一同分享。
查看评论 | 添加评论
返回顶部 | 返回首页