2012-05-01 37 views
0

可能重複:
LEFT OUTER JOIN 2 datatablesLEFT JOIN DataTables - 我如何得到這個工作?

比方說,這是我的確切代碼:

 DataTable table1 = new DataTable(); 
     DataTable table2 = new DataTable(); 
     DataTable joinedtable = new DataTable(); 

     table1.Columns.Add("ID"); 
     table1.Columns.Add("ColA"); 
     table1.Rows.Add(1, "A"); 

     table2.Columns.Add("ID"); 
     table2.Columns.Add("ColB"); 
     table2.Rows.Add(1, "B"); 

什麼將我的查詢,LINQ與否,但左連接表1和table2放在一起,並把它放入joinedTable? 當我嘗試搜索的例子,我不斷髮現,像這樣開頭的例子:

 var result = from x in table1 
      join y in table2 on x.ID equals y.ID 

但是,我得到DataTable1一個錯誤,我發現了一個建議,而不是做「table1.AsEnumerable()」,但隨後我沒有x.ID. .ID未定義。我只有一些正常的DataRow會擁有的東西。 我在這裏做錯了什麼?我似乎無法弄清楚這一點。

謝謝大家的幫助。

+0

@dash我一直在使用System.Data ;,其中應包括.Data.DataSetExtensions,是否正確?我假設如此,但想確認。 謝謝。 – Kyle

+0

不 - 你需要System.Data.DataSetExtensions - 這是專門用於Linqyfying你的DataTables的。那麼,不是特別的,但它有幫助。請參閱http://msdn.microsoft.com/en-us/library/system.data.datatableextensions.aspx(它們位於DataSetExtensions中,並添加之後的功能)它們是否位於項目的引用中?如果是,請忽略我的評論。 – dash

+1

@ user1308743 - 發佈相同問題兩次的任何原因?您可以編輯原始問題以添加更多信息。 –

回答

1

隨着DataTables它不幸成爲一種棘手的(如果你不希望使用LINQ出於任何原因),因爲你需要定義DataRelation對象實際上定義這兩個DataTables之間的關係確定指標。

欲瞭解更多信息,可以對這樣的解釋一下:

How to join two DataTables using C#

+0

我很喜歡使用LINQ,我似乎無法讓它工作。你可以用我上面設置的簡單數據表給我看一個簡單的例子嗎?我發現的例子似乎無法工作。感謝您的幫助。 – Kyle

+0

以下是數據集連接助手類的完整實現>> http://support.microsoft.com/kb/326080/en-us – banging