发现微软MSChart的一个严重Bug!!!!!
在上几篇博文中我介绍了MSChart的使用..相对而说是比较入门级的,就是一些数据绑定方面的内容..当时做的时候是用了一些测试数据,数据结构方面比较整齐(也就是说数据结构很有规律)统计处的结果是正确的..这几天拿到正式数据之后,许多数据结构不很规则,放到MSChart中就出问题了...
因为要统计成三维图表.只能用到了交叉表的这个 方法 DataBindCrossTable (); 问题就出在这个方法上!!!
这个是数据集结果图:
这个数据是我打乱之后的,,Name是varchart类型,,Year 是int行, Sales 是货币类型...
之后绑定方法如下
Chart1.DataBindCrossTable( myReader, "Name", "Year", "Sales", "Label=Commissions{C}");
以Name分组情况如下图:
大家可以看到 ,现在数据时正确的,因为X轴是int类型,.这个方法可以自动区分开..
下面大家来看以Year分组,,Name为X轴
很明显的看到,,Xiaogang 2005年的数据跑到John那里去了..Mary 2005年的数据跑到Andrew那里去了...
来回的这样的测试我做了不下二十次。。。
发现DataBindCrossTable这个方法对字符串的支持不是很好..原本以为在VS2010里面的会修复这个Bug..
下午用了vs2010试了下.还是不行..
项目进行到这个地步..换不了控件,只能另寻办法了....
郁闷两天了...今天找出原因.缺不知道怎么解决..my god。。。
顺便BS下微软..!!!啥东西都不开源!!!