日期:2014-05-17  浏览次数:20480 次

C# ExcuteNoneQuery()返回值0的问题。
今天我在做一个新的功能时,调用之前封好的一Delete函数,但是在最后执行excutenoneQuery()的时候,返回值一直未0,问题居然执行成功了。以前没有碰到这个问题。就去百度和google了一下,发现上面网友说的也是非常模糊。
然后我又试了一下其他模块的删除功能,发现返回值居然是1!TMD居然是1!!这让我非常蛋疼。
然后我又尝试了下insert和updata,返现返回值也是1。
如果说我的sql有问题,那么在执行delete的时候数据不会被删除。
想不明白其中有什么道道。
求大神指点一下。
Thanks.
c# sql

------解决方案--------------------
单步调试,监控变量的值,会发现问题的。
------解决方案--------------------
不管它返回什么值,你能举出一例说明你的这个delete方法没有删除它该删除的记录吗?

如果举不出来,我建议你不要纠缠这个问题。你就完全没有必要写 
return result;

只要一个void调用就行了。
------解决方案--------------------
如果要捕获异常,那么应该捕获异常。显然return result没有意义。

如果你要测试,那么你的测试用例应该在执行delete语句之后赶紧再执行一次select语句看看数据是否还在,你根本没有一次是纠缠在result等于0就“沉思”不语的(你都是赶紧再去select一下)。

而程序运行时根本就是执行
MSSqlHelper.ExecuteSql(strSQL, spr);
而没有必要画蛇添足地写
int result = MSSqlHelper.ExecuteSql(strSQL, spr);