Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据集中的多个系列_C#_.net_Mschart - Fatal编程技术网

C# 数据集中的多个系列

C# 数据集中的多个系列,c#,.net,mschart,C#,.net,Mschart,我有一个相对简单的问题,我想从一个包含两个表的数据集中在一个图表中显示两个简单的直线序列 现在,我只是创建了第二个系列,其中包含相同的ValueMembers,但它们显示在彼此的顶部。数据集正确填充了不同的值 dataAdapter.Fill(dataSetChart); chartKunden.Series.Add("Kunden"); chartKunden.Series.Add("Table1"); chartKunden.Series["K

我有一个相对简单的问题,我想从一个包含两个表的数据集中在一个图表中显示两个简单的直线序列

现在,我只是创建了第二个系列,其中包含相同的ValueMembers,但它们显示在彼此的顶部。数据集正确填充了不同的值

      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;
我基本上只是想知道如何将它们分开,以便第二个系列从数据集的第二个表中获取数据

更新的数据绑定:

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

chartKunden.Series["Table1"].Points.DataBind(dataSetChart.Tables[0].Rows, "Woche", "Stunden", "");
有很多方法可以进行数据绑定

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

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”

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

s1.Points.DataBind(t1.Rows, "col11", "col12", "Tooltip=colcom1");
有关此限制的讨论,请参阅

还请注意,此绑定重载需要在同一数据源中查找x和y值。查看上面的绑定概述,了解更灵活的方法

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

s2.Points.DataBindXY(t2.Rows, "col21", t1.Rows, "col12");
请注意,现在我们无法设置扩展属性

好的,我想我可以缩小问题的范围,我根据复选按钮以两种不同的方式绘制图表,通常我先绘制另一个版本,但现在我先绘制有错误的版本,数据现在显示正确。
我以为在添加新值之前已正确清除了图表和数据集,但事实似乎并非如此,我将对此进行进一步研究。

请向我们展示代码。向我们展示您访问“数据集的第二个表”的尝试。因此,这里真正的问题似乎是:如何访问第二个表中的数据?我更新了这个问题,但不幸的是没有太多可看的内容:(哎哟,打字:
chartKunden.Series[“Kunden”].Points.DataSource=dataSetChart.Tables[someTable1];
嗯,对不起,你是对的。有。这里使用
yourSeries1.Points.DataBind(yourSource,“xvaluename”,“yvaluename”,““”);)
。请注意空字符串!(这里可以将customproperty绑定;通常不起作用。)也请参见抱歉,给了您三个错误提示。不过,下面的答案是经过测试的…-)所以我终于有机会测试你的解决方案了,看起来我对这个系列有不同长度这一事实有问题。看起来较短的序列只取较长序列的值。有没有办法告诉短系列不要这样做?短系列只是取长系列的值,我不知道我是否理解,但这真的不可能发生。你能不能再发一些,比如截图?x值是什么类型的?(
wochen
)?数字?我添加了一个屏幕截图,你可以看到两条线以不同的绿色阴影重叠在一起。奇怪的是,一个表包含3行,而另一个表只包含2行,但它们都在图表中显示了3个数据点。这两个值都是数字,xValue是整数,yValue允许逗号,这看起来很像两个序列绑定到同一个数据。请使用调试器测试表的数量和内容。另外:你似乎已经更改了一个系列的名称,对吗?通过名称而不是索引来引用elment通常更清晰。这种效果似乎不可能,所以应该有一些拼写错误。我会尝试更改一些数据,看看它是如何生效的!不确定这是否应该是一个答案。这些点将始终显示表的内容,但除非清除表行,否则它们将保留以前的行。