我在這裏有一個小問題,用LINQ語句。基本上我嘗試與LINQ加入兩個數據表,但我不想指定將顯示結果中的列。VB.Net LINQ鏈接兩個數據表並顯示所有列
我希望結果中的所有列都沒有在LINQ中指定它們。 或者一些方法來動態選擇列?
有什麼想法?
代碼:
Dim vDT1 As New DataTable
vDT1.Columns.Add("Key")
vDT1.Columns.Add("Data1")
vDT1.Columns.Add("Data2")
vDT1.Rows.Add({"01", "DATA1_AAAA", "DATA2_AAAA"})
vDT1.Rows.Add({"02", "DATA1_BBBB", "DATA2_BBBB"})
vDT1.Rows.Add({"03", "DATA1_CCCC", "DATA2_CCCC"})
vDT1.Rows.Add({"04", "DATA1_DDDD", "DATA2_DDDD"})
Dim vDT2 As New DataTable
vDT2.Columns.Add("Key")
vDT2.Columns.Add("Data3")
vDT2.Columns.Add("Data4")
vDT2.Rows.Add({"01", "DATA3_AAAA", "DATA4_AAAA"})
vDT2.Rows.Add({"02", "DATA3_BBBB", "DATA4_BBBB"})
vDT2.Rows.Add({"03", "DATA3_CCCC", "DATA4_CCCC"})
vDT2.Rows.Add({"04", "DATA3_DDDD", "DATA4_DDDD"})
Dim vLINQ = From DT1 In vDT1.AsEnumerable
Join DT2 In vDT2.AsEnumerable
On DT1.Field(Of String)("Key") Equals DT2.Field(Of String)("Key")
Select Key = DT1.Field(Of String)("Key"), Data1 = DT1.Field(Of String)("Data1"), Data2 = DT1.Field(Of String)("Data2"),
Data3 = DT2.Field(Of String)("Data3"), Data4 = DT2.Field(Of String)("Data4")
***我想跳過LINQ
「選擇」 這是結果:
MMMM,OK,你知道的任何方法來動態地創建,我想顯示的字段? – MiBol 2012-08-12 06:09:22
更新了答案 – 2012-08-12 06:14:53
感謝您的快速回復。但是我更加動態地思考問題。例如:我想創建一個方法,可以通過將任何數據表應用到任何列的組合。然後,我需要從DataTables的結構創建這些List(Of AnnonymousType)。 – MiBol 2012-08-12 06:29:12