两个DataTable合并列
两个DataTable,
一个是DataTable A数据
NameNumber(用户编号) Type(用户状态)
111 Y
222 N
另一个DataTable B数据
NameNumber(用户编号) Name(用户姓名) Address(用户地址)
111 张三 上海
222 李四 北京
我想得到的数据是
111 Y 张三
就是把DataTable B中的Name列添加到DataTable A中怎么实现?
[解决办法]
refer:
static void Main(string[] args)
{
DataTable A = new DataTable();
A.Columns.Add("NameNumber", typeof(string));
A.Columns.Add("Type", typeof(string));
DataRow drA = null;
drA = A.NewRow();
drA["NameNumber"] = "111";
drA["Type"] = "Y";
A.Rows.Add(drA);
drA = A.NewRow();
drA["NameNumber"] = "222";
drA["Type"] = "N";
A.Rows.Add(drA);
DataTable B = new DataTable();
B.Columns.Add("NameNumber", typeof(string));
B.Columns.Add("Name", typeof(string));
B.Columns.Add("Address", typeof(string));
DataRow drB = null;
drB = B.NewRow();
drB["NameNumber"] = "111";
drB["Name"] = "张三";
drB["Address"] = "上海";
B.Rows.Add(drB);
drB = B.NewRow();
drB["NameNumber"] = "222";
drB["Name"] = "李四";
drB["Address"] = "北京";
B.Rows.Add(drB);
var result = from p in A.AsEnumerable()
from q in B.AsEnumerable()
where p.Field<string>("NameNumber") == q.Field<string>("NameNumber")
select new
{
NameNumber = p.Field<string>("NameNumber"),
Type = p.Field<string>("Type"),
Address = q.Field<string>("Address")
};
result.ToList().ForEach(x => Console.WriteLine(x.NameNumber + "-" + x.Type + "-" + x.Address));
}
