[問題]兩個DataTable合併

看板C_Sharp作者 (BEN)時間10年前 (2013/10/19 23:10), 編輯推噓1(1010)
留言11則, 3人參與, 最新討論串1/1
我有兩個DataTable DT_A 還有 DT_B DT_A的欄位有 ID_A Name_A_1 Name_A_2 Detail_A DT_B的欄位有 ID_B Name_B_1 Name_B_2 Detail_B 以上兩個DataTable的行數不一定,ID以及Detail皆不相同 我想將兩張表合併到一張表 MainTable 這張表的欄位有 ID_A ID_B Name_1 Name_2 Detail_A Detail_B 合併的標準以兩張表的 Name1和2相同 就放在同一行 假設表A 有兩行數據 0001 name01 name02 detail01 0002 name03 name04 detail02 表B有一行數據 0806 name01 name02 detail886 合併到MainTable後希望能變成 0001 0806 name01 name02 detail01 datail886 0002 name03 name04 detail02 請問除了迴圈的方式 有其他方法嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.164.17.63

10/20 00:29, , 1F
A與B這兩個DT資料來源為何?SQL?Excel匯入?使用者輸入?
10/20 00:29, 1F

10/20 00:30, , 2F
SQL來源的話,直接在SQLCommand處理應該比較快
10/20 00:30, 2F

10/20 00:31, , 3F
如果去除SQLCommand這種方式要完全不用迴圈大概無解吧?
10/20 00:31, 3F

10/20 00:31, , 4F
不用迴圈連基本的比對name1與name2都...
10/20 00:31, 4F

10/20 00:56, , 5F
資料來源是網頁上抓取的資料,整理過後加進DT
10/20 00:56, 5F

10/20 00:56, , 6F
那如果有主鍵,會有辦法嗎?
10/20 00:56, 6F

10/20 00:58, , 7F
我想到一個方式,把name1跟name2轉換成hashcode當作主
10/20 00:58, 7F

10/20 00:59, , 8F
鍵,不過好像也是要跑迴圈
10/20 00:59, 8F

10/20 08:38, , 9F
name1,name2可以當主鍵的話試試 Datatable.merge()
10/20 08:38, 9F

10/20 09:02, , 10F
會希望不使用迴圈應該是因為資料量過大吧?上百萬筆之類的
10/20 09:02, 10F

10/20 19:17, , 11F
感謝各位,使用Merge的方式,設定主鍵,欄位設定好,搞定!
10/20 19:17, 11F
文章代碼(AID): #1IOg3Epy (C_Sharp)