Несколько серий из DataSet - PullRequest
       60

Несколько серий из DataSet

2 голосов
/ 24 сентября 2019

enter image description here У меня относительно простая проблема, я хочу отобразить 2 простых ряда строк в диаграмме из набора данных с двумя таблицами в нем.

Сейчас я просто создаювторая серия с теми же 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;

Я просто хочу знать, как их разделить, чтобы вторая серия получала данные из второй таблицы DataSet.

Обновленный DataBind:

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

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

Ответы [ 2 ]

3 голосов
/ 24 сентября 2019

Существует много способов для привязки данных.

Вы можете привязать каждую серию к отдельному источнику данных, например, так:

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");

Обратите внимание, чтоТеперь мы не можем устанавливать расширенные свойства!

0 голосов
/ 27 сентября 2019

enter image description here Хорошо, я думаю, что смогу сузить проблему, я рисую Диаграмму двумя различными способами в зависимости от CheckButton, обычно сначала я рисую другую версию, но теперь я рисую версию ссначала ошибка, и данные теперь отображаются правильно.Я думал, что очистил Chart и DataSet должным образом, прежде чем добавлять новые значения, но, похоже, это не так, я буду в дальнейшем разбираться с этим.

...