我有一个相对简单的问题,我想在一个包含 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;
我基本上只想知道如何将它们分开,以便第二个系列从数据集的第二个表中获取数据。
更新的数据绑定(bind):
chartKunden.Series["Table2"].Points.DataBind(dataSetChart.Tables[1].Rows, "Woche", "Stunden", "");
chartKunden.Series["Table1"].Points.DataBind(dataSetChart.Tables[0].Rows, "Woche", "Stunden", "");
最佳答案
有 many ways 可以做数据绑定(bind)。
您可以将每个系列绑定(bind)到一个单独的数据源,例如:
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", "");
假设有两个数据表 t1
和 t2
,列为 "col11"
、"col12"
和 “col21”
,“col22”
。
注意空字符串作为最后一个参数。在这里可以添加一个以逗号分隔的自定义属性列表以添加到绑定(bind)中。示例:
s1.Points.DataBind(t1.Rows, "col11", "col12", "Tooltip=colcom1");
有关限制的讨论,请参阅 here!
另请注意,此绑定(bind)重载需要在同一数据源中查找 x 值和 y 值。查看上面的绑定(bind)概述以获得更灵活的方法!!
将 x 和 y 值绑定(bind)到不同来源的简单示例可以写成:
s2.Points.DataBindXY(t2.Rows, "col21", t1.Rows, "col12");
请注意,现在我们无法设置扩展属性!
关于c# - 来自 DataSet 的多个系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58081252/