C# 画多组柱状图
C#画一组柱状图的问题解决了,但是多组的总有点问题!
数据库表的结构如下表char:
时间 严重程度 个数 ...........
2006-2-1 low 1 ...........
2006-2-1 high 2 ..........
2006-2-1 quit 2 ..........
2006-2-2 low 3 ........
2006-2-2 high 1 .......
........................................
时间,严重程度,个数是主要的数据,其他的数据没有列举。
首先,从数据库中取出这些数据,并以严重程度分组存储在数组中
for(int i=0;i<record.Tables["char"].Rows.Count;i++)
{
myCategory[i]=Convert.ToInt16(record.Table["char"].Rows[i][2]);
date[i]=Convert.Tostring(record.Tables["char"].Rows[i][0]);
}
注:record为我从数据库中导出的DataSet
严重程度三个,存储在下列数组中:
string[] myCategoryName=new string[3]{"low","high","quit"};
下面以这三种程度分类:
for(int j=0;j<record.Tables["char"].Rows.Count;j++)
{
for(int i=0;i<3;i++)
{
if(myCategoryName[i]==record.Tables["char"].Rows[j][1].ToString())
{
strCategory[i]+=date[j]+'\t';
strValue[i]+=myCategory[j].ToString()+'\t'
}
else
{
strCategory[i]+=""+'\t';
strValue[i]+=""'\t';
}
}
}
下面是一些初始化。由于是在公司,不能直接拷代码,只有键盘输入了,有些代码就约了
下面是把数值传给OWC,office工具。
for(int i=0;i<3;i++)
{
myChart.SeriesCollection.Add(i);
myChart.SeriesCollection[i].SetData(OWC.ChartDimensionsEnum.chDimSeriesNames,
+(int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral,myCategoryName[i]);
myChart.SeriesCollection[i].SetData(OWC.ChartDimensionsEnum.chDimCategories,
+(int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral,strCategory[i]);
myChart.SeriesCollection[i].SetData(OWC.ChartDimensionsEnum.chDimValues,
(int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral,strValue[i]);
}
然后是画图。
这样运行程序得出的结果是:显示的图像是按照严重程度排序的,但是我要的结果是按照时间排序的。
后来我发现一个地方可能有问题:
for(int j=0;j<record.Tables["char"].Rows.Count;j++)
{
for(int i=0;i<3;i++)
{
if(myCategoryName[i]==record.Tables["char"].Rows[j][1].ToString())
{
strCategory[i]+=date[j]+'\t';
strValue[i]+=myCategory[j].ToString()+'\t'
}
else
{
//下面可能有问题,所以,我把下面的一行做了修改
// strCategory[i]+=""+'\t';
strCategory[i]+=date[j]++'\t';
strValue[i]+=""+'\t';
}
}
}
结果是按时间排序了,但是显示不正确,并且有信息丢失。
请各位仁兄给我宝贵的意见!
由于是键盘输入,代码可能有错误,这个不是重点,重点在我做修改的地方!