Привязка набора данных к диаграмме MS с несколькими столбцами - PullRequest
2 голосов
/ 17 марта 2011

У меня есть набор данных с несколькими таблицами данных, которые я хотел бы привязать к диаграмме с несколькими рядами столбцов. Я ожидал, что каждая серия будет иметь разные значения, соответствующие DataTables в DataSets; однако при появлении диаграммы обе серии отображают одинаковые значения в столбце Y, значения из первых таблиц.

Вот общее представление о том, на что похож мой код:

(я создал и заполнил DataSet с именем diffCharts, 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 знает, как с этим справиться?

Ответы [ 2 ]

1 голос
/ 11 ноября 2014

Я знаю, что это старый пост, но лучше поздно, чем никогда.

Вы можете привязать перечисляемые источники данных непосредственно к свойству DataPointCollection в серии, используя метод DataBind. Таким образом, каждая серия может быть связана с другой таблицей. Я относительно новичок в C #, поэтому этот метод может иметь негативные последствия, о которых я не знаю. Это работает правильно в моем ограниченном тестировании.

MSDN-ссылка.

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

Propertyaxis можно оставить пустой строкой

0 голосов
/ 17 марта 2011

Я не думаю, что вы можете сделать это.

Возможно, вам потребуется создать таблицу с одним столбцом в качестве общего столбца для оси X (месяц), а затем еще два столбца для Yзначения, которые вы хотите отобразить.

Класс DataTable имеет функцию Merge, которая может делать именно то, что вам нужно.

...