datatTable 合并,左右拼接,在线等

YEMIAN123 2016-12-16 10:04:10
datatTable a
id type
1 a
2 b
3 c
dataTable b
id uname
1 cd
2 f r
4 de

合并成
id type uname
1 a cd
2 b fr
3 c
4 de

急求,谢谢!多谢各位了
...全文
315 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
要不你用视图? 查询的时候,用full out join
  • 打赏
  • 举报
回复
引用 6 楼 YEMIAN123 的回复:
[quote=引用 5 楼 Hello_Ge 的回复:] 多表查询 join on
不行吧,我这是两个库里查出来的dataTable [/quote] 后台代码合并
一支糖包仔 2016-12-19
  • 打赏
  • 举报
回复
select id,type,null uname from a union all select id,null type,uname from b 数据库查询语句,你试试。这种语句的坏处就是要让两个表的列一样。可以定义null (别名)这种方式实现。
神韵凌天 2016-12-19
  • 打赏
  • 举报
回复
使用完全连接语句 select * from Tab_a full join Tab_b on Tab_a.id=Tab_b.id
YEMIAN123 2016-12-16
  • 打赏
  • 举报
回复
引用 5 楼 Hello_Ge 的回复:
多表查询 join on
不行吧,我这是两个库里查出来的dataTable
  • 打赏
  • 举报
回复
多表查询 join on
YEMIAN123 2016-12-16
  • 打赏
  • 举报
回复
引用 3 楼 q646926099 的回复:
我记得好像有一个merge方法。 不行的这个笨办法 就是创建一个新的DataTable ,然后遍历 把它俩遍历加进来
Merge是纵向拼接的,遍历的话数据量大了太慢了
xiaoqiu_net 2016-12-16
  • 打赏
  • 举报
回复
我记得好像有一个merge方法。 不行的这个笨办法 就是创建一个新的DataTable ,然后遍历 把它俩遍历加进来
YEMIAN123 2016-12-16
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
遍历合并。
可以详细一些吗?现在思路有些乱了
ajianchina 2016-12-16
  • 打赏
  • 举报
回复

var query = tbA.AsEnumerable().Select(p => new
            {
                id = p.Field<int>("id"),
                type = p["type"].ToString(),
                uname = string.Empty
            }).Concat(tbB.AsEnumerable().Select(p => new
            {
                id = p.Field<int>("id"),
                type = string.Empty,
                uname = p.Field<string>("uname")
            })).GroupBy(p => p.id).Select(p => new
            {
                id = p.Key,
                type = string.Join("", p.Select(s=>s.type)),
                uname = string.Join("", p.Select(s=>s.uname))
            });
exception92 2016-12-16
  • 打赏
  • 举报
回复
遍历合并。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧