吐槽

10月29号有一个bug,具体描述是这样,一段日期,wcf读取一张表的几个字段,这几个字段类型是Decimal?类型,取来以后需要对一个字段进行一个算法的操作,由于数据不少,需要大概2秒-5秒时间,当然是异步操作,然后绑定数据

然后,悲剧就开始了,数据出来后绑定的数据源有问题,数据总是不对
然后开始想,是不是由于日期改变造成影响上一次的异步,(这里在查询的时候,我还是让它能再一次查询),然后开个工程,demo,开始跟踪,无果

然后再想,是不是数据源绑定的时候没有清除上一次的数据源,然后开始跟踪,然后继续无果

然后再想,是不Decimal?这个数据有问题,转换的时候强制转换成0了,然后费劲心思跟踪,最后验证,Decimal没有错。

继续想,这尼玛到底是哪里出问题了,索性把数据全部打出来,在Excel中拿出来,正确的,错误的都拿出来,对!

在里面写上程序的算法,然后对比,发现15行的数据本来应该是根据14行的数据来进行计算的,但是15行数据竟然是用第16行数据计算,我就纳闷了,这是什么原因,看程序,for(int i;...;i++)很标准的for语句啊,然后,突然悟了!突然就悟了!尼玛取数据源的时候是不是按日期排序了!是不是日期也是升序排列,然后就在List后面加上一个OrderBy(w=>w.CalcDate).ToList()

然后,然后就没有了,尼玛4天没找到问题有没有,四天啊!

posted @ 2012-11-02 20:09  爱喝可乐  阅读(151)  评论(0编辑  收藏  举报