作者unstoppable (BEN)
看板C_Sharp
标题[问题]两个DataTable合并
时间Sat Oct 19 23:10:04 2013
我有两个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
1F:推 m339606:A与B这两个DT资料来源为何?SQL?Excel汇入?使用者输入? 10/20 00:29
2F:→ m339606:SQL来源的话,直接在SQLCommand处理应该比较快 10/20 00:30
3F:→ m339606:如果去除SQLCommand这种方式要完全不用回圈大概无解吧? 10/20 00:31
4F:→ m339606:不用回圈连基本的比对name1与name2都... 10/20 00:31
5F:→ unstoppable:资料来源是网页上抓取的资料,整理过後加进DT 10/20 00:56
6F:→ unstoppable:那如果有主键,会有办法吗? 10/20 00:56
7F:→ unstoppable:我想到一个方式,把name1跟name2转换成hashcode当作主 10/20 00:58
8F:→ unstoppable:键,不过好像也是要跑回圈 10/20 00:59
9F:→ drizzt123:name1,name2可以当主键的话试试 Datatable.merge() 10/20 08:38
10F:→ m339606:会希望不使用回圈应该是因为资料量过大吧?上百万笔之类的 10/20 09:02
11F:→ unstoppable:感谢各位,使用Merge的方式,设定主键,栏位设定好,搞定! 10/20 19:17