执行存储过程时可能碰到的错误小结 

常建昭

在前一段时间写作业的时候,用了不少的存储过程,而在调用存储过程的时候也出现了不少的错误。而且有许多错误都是犯了不下一次的。。每次都能浪费一二个小时,。。现在做个小总结,希望当大家遇到存储过程调用出错,数据层返回不到数据,产生类似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后,最好检查一下权限,反正按一个按钮,很方便,但却能保证你不会花上一二个小时去检查其它错误。。。

好了,以上就是我在这次作业中,碰到的相关的调用存储过程的问题。希望能帮助到大家。与此同时,如果你有碰到过其它的问题,不妨也贴出来,让大家一同分享。

Feedback

#1楼    回复  引用    

2005-04-07 16:25 by 自由哥哥 [未注册用户]
请遵守版规.此处是新手训练团队版块,发文应当与本团队训练要求与步骤相一致.谢谢合作
不明之处看此文:http://www.cnblogs.com/lovewangshu/archive/2005/03/16/119834.html

#2楼 [楼主]   回复  引用  查看    

2005-04-08 18:15 by 常建昭      
不好意思,太久没发贴,是我的失误。向大家认错。以后一定注意。

#3楼    回复  引用    

2005-05-13 10:36 by 杨杨 [未注册用户]
遇到过没有权限的低级错误,竟然没有我用了一早才发现,差点把我气晕了

#4楼 [楼主]   回复  引用  查看    

2005-05-13 20:16 by 常建昭      
呵呵。同道中人。。我也了解之后的感觉,那个心酸呀。。。



posts - 63, comments - 176, trackbacks - 5, articles - 8

Copyright © Ray Chang