将DataSet绑定到MultiColumn MS Chart

时间:2011-03-16 21:42:30

标签: c# charts datatable dataset

我有一个包含多个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是否知道如何处理这个?

2 个答案:

答案 0 :(得分:1)

我知道这是一个老帖子,但迟到总比没有好。

您可以使用DataBind方法将可枚举数据源直接绑定到系列中的DataPointCollection属性。这样每个系列都可以绑定到不同的表。 我对C#比较新,所以我不知道这个方法可能会有不良影响。它在我的有限测试中正常运行。

MSDN link.

Chart1.Series.Add("table1");
Chart1.Series["table1"].Points.DataBind(table.AsEnumerable(), "nameofXaxis", "nameofYaxis, "nameofPropertyaxis");

Propertyaxis可以保留为空字符串

答案 1 :(得分:0)

我认为你不能那样做。

您可能需要创建一个表,其中一列作为X轴(月)的共享列,然后是另外两列,用于您想要绘制的Y值。

DataTable类有一个Merge函数,可以完全满足您的需要。