我有一个包含多个DataTable的DataSet,我想绑定到具有多个列系列的图表。我希望每个系列都具有与DataSet中的DataTable相对应的不同值;但是,当图表出现时,两个系列在Y列中显示相同的值,即第一个表中的值。
以下是我的代码的一般概念:
(我创建并填充了一个名为diffCharts的DataSet,diffCharts包含表table1和table2,两个表都有Month和Amount列)
Chart1.Series.Add("table1");
Chart1.Series["table1"].XValueMember = "Month";
Chart1.Series["table1"].YValueMembers = "Amount";
Chart1.Series.Add("table2");
Chart1.Series["table2"].XValueMember = "Month";
Chart1.Series["table2"].YValueMembers = "Amount";
Chart1.DataSource = diffCharts;
Chart1.DataBind();
我错过了什么吗?我以前从未将带有多个表的DataSet绑定到图表中...... MS是否知道如何处理这个?
答案 0 :(得分:1)
我知道这是一个老帖子,但迟到总比没有好。
您可以使用DataBind方法将可枚举数据源直接绑定到系列中的DataPointCollection属性。这样每个系列都可以绑定到不同的表。 我对C#比较新,所以我不知道这个方法可能会有不良影响。它在我的有限测试中正常运行。
Chart1.Series.Add("table1");
Chart1.Series["table1"].Points.DataBind(table.AsEnumerable(), "nameofXaxis", "nameofYaxis, "nameofPropertyaxis");
Propertyaxis可以保留为空字符串
答案 1 :(得分:0)
我认为你不能那样做。
您可能需要创建一个表,其中一列作为X轴(月)的共享列,然后是另外两列,用于您想要绘制的Y值。
DataTable类有一个Merge函数,可以完全满足您的需要。