首页 > 解决方案 > 数据集中的多个系列

问题描述

在此处输入图像描述我有一个相对简单的问题,我想在一个包含 2 个表的数据集中的图表中显示 2 个简单的线系列。

现在我只是创建了具有相同 ValueMembers 的第二个系列,但它们彼此重叠显示。DataSet 用不同的值正确填充。

      dataAdapter.Fill(dataSetChart);
      chartKunden.Series.Add("Kunden");
      chartKunden.Series.Add("Table1");
      chartKunden.Series["Kunden"].ChartType = SeriesChartType.Line;
      chartKunden.Series["Table1"].ChartType = SeriesChartType.Column;
      chartKunden.Series["Table1"].XValueMember = "Woche";  
      chartKunden.Series["Table1"].YValueMembers = "Stunden";     
      chartKunden.Series["Kunden"].XValueMember = "Woche";  
      chartKunden.Series["Kunden"].YValueMembers = "Stunden";
      chartKunden.DataSource = dataSetChart;

我基本上只是想知道如何将它们分开,以便第二个系列从 DataSet 的第二个表中获取数据。

更新数据绑定:

chartKunden.Series["Table2"].Points.DataBind(dataSetChart.Tables[1].Rows, "Woche", "Stunden", "");

chartKunden.Series["Table1"].Points.DataBind(dataSetChart.Tables[0].Rows, "Woche", "Stunden", "");

标签: c#.netmschart

解决方案


很多方法可以进行数据绑定。

您可以将每个系列绑定到单独的数据源,例如:

s1.XValueMember = "col11";
s1.YValueMembers = "col12";
s2.XValueMember = "col21";
s2.YValueMembers = "col22";

s1.Points.DataBind(t1.Rows, "col11", "col12", "");
s2.Points.DataBind(t2.Rows, "col21", "col22", "");

这假设有两个 DataTablest1t2Columns "col11","col12""col21", "col22"

注意空字符串作为最后一个参数。在这里可以添加以逗号分隔的自定义属性列表以添加到绑定中。例子:

s1.Points.DataBind(t1.Rows, "col11", "col12", "Tooltip=colcom1");

有关此限制的讨论,请参见此处

另请注意,此绑定重载需要在同一数据源中查找 x 值和 y 值。查看上面的绑定概述以获得更灵活的方式!

将 x 和 y 值绑定到不同源的简单示例可以写成:

s2.Points.DataBindXY(t2.Rows, "col21", t1.Rows, "col12");

请注意,现在我们不能设置扩展属性!


推荐阅读