2011-03-16 80 views
2

我有一個具有多個DataTable的DataSet,我想將它綁定到具有多個列系列的圖表。我期望每個系列對DataSet中的DataTables有不同的值;但是,當圖表出現時,兩個系列在Y列中顯示相同的值,即第一個表中的值。將數據集綁定到多列MS圖表

這裏是我的代碼是什麼樣的一個總體思路:

(我創建並填充DataSet中名爲diffCharts,diffCharts包含表Table 1和Table,兩個表具有列月份及金額)

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是否知道如何處理這個問題?

回答

0

我不認爲你可以這樣做。

您可能需要創建一個表格,其中一列用作X軸(月)的共享列,然後是您想要繪製的Y值的兩列。

DataTable類有一個合併功能,可以做你想要的。

+1

我有一個事實上,我一直試圖在我的代碼中尋找DataSets的合法需求多年,而這(顯然)不是這樣,因爲我自己生成表格,所以我可以重寫按照您的建議添加更多Y列。 – Dave 2011-03-17 14:24:39

1

我知道這是一箇舊帖子,但比從未更好。

您可以使用DataBind方法將可枚舉數據源直接綁定到該系列中的DataPointCollection屬性。這樣每個系列可以綁定到不同的表格。 我對C#比較陌生,所以可能會對我不知道的這種方法產生不利影響。它在我有限的測試中正確運行。

MSDN link.

Chart1.Series.Add( 「表1」); 。 Chart1.Series [ 「表1」] Points.DataBind(table.AsEnumerable(), 「nameofXaxis」,「nameofYaxis, 「nameofPropertyaxis」);

Propertyaxis可以保留爲空字符串