【问题标题】:Binding a DataSet to a MultiColumn MS Chart将数据集绑定到多列 MS 图表
【发布时间】:2011-03-16 21:42:29
【问题描述】:

我有一个包含多个数据表的数据集,我想将其绑定到具有多个列系列的图表。我希望每个系列对 DataSets 中的 DataTables 有不同的值;但是,当图表出现时,两个系列在 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 知道如何处理这个吗?

【问题讨论】:

    标签: c# charts datatable dataset


    【解决方案1】:

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

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

    MSDN link.

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

    属性轴可以保留为空字符串

    【讨论】:

      【解决方案2】:

      我认为你做不到。

      您可能需要创建一个表格,其中一列作为 X 轴(月)的共享列,然后再创建两列作为要绘制图表的 Y 值。

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

      【讨论】:

      • 我有种感觉。实际上,多年来我一直试图在我的代码中找到对 DataSets 的合法需求,而这(显然)不是。由于我自己生成表,因此我可以按照您的建议重写代码以添加更多 Y 列。
      猜你喜欢
      • 2011-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-18
      • 2010-11-25
      • 2015-02-28
      • 1970-01-01
      相关资源
      最近更新 更多