2011-04-18 53 views
-1

您好我有以下情況:如何使用C#將多個DataTable對象與組合並在一起併合並重復的行?

我有一組查詢將返回我的一組DataTable對象。該數據表將具有幾行相同的列,以及每列獨有的列。例如

表1:

Name | Jan Data | Feb Data 
A  |10   |20 
B  |12   |9 

表2:

Name | Mar Data | Apr Data | May Data 
A  |12   |21   |5 
C  |14   |90   |6 

現在我想合併這兩個數據表對象。但在合併時,有兩個表格共有的名稱(如A),數據也不盡相同。所以我想要一個輸出如:

Name | Jan Data | Feb Data | Mar Data | Apr Data | May Data 
A  |12   |21   |5   | 45  |52 
B  | 0   | 0   |   |62   |21 
C  |14   |90   |6   |63   |42 

結果表將具有按名稱分組時每個行值的總和。 (我並沒有在這裏計算道歉的麻煩)

你能告訴我一個如何實現這個方法嗎?

我使用C#2.0

+0

你可以請詳細說明你出來把數據4月份的數據如何45以及5月份的數據如何到達 – gbbosmiya 2011-04-18 10:15:53

+0

-1因爲不會'麻煩' – 2011-04-18 10:33:05

+0

@gbbosmiya:我沒有正確總結。我已經提到了這個問題。 – Amit 2011-04-18 11:04:32

回答

1

我會寫另一個查詢,將兩者合併,並返回正是我想要的。你所描述的是關係數據庫和SQL所要做的。除非我絕對必須,否則我不會在代碼中做到這一點。

+0

這是一個好主意...我不太熟悉sql ...任何指針你想分享如何可以在sql中實現? – Amit 2011-04-18 10:11:26

+0

是 - 熟練掌握SQL。我不能具體,因爲我不知道你的模式。 – duffymo 2011-04-18 11:52:40

0

如果你可以在SQL視圖中這樣做,這可能是你最好的結果。

如果你這樣做限制,我相信你會得到你想要出DataTable.Merge

的結果代碼將看起來像:

private DataTable CombineTables(DataSet ds) 
{ 
return New DataTable = ds.Tables(0).Merge(ds.Tables(1),true,MissingSchemaAction.Add); 
} 
相關問題