先附上代码如下:
DataTable dtN = new DataTable();
DataSet ds = new DataSet();
IEnumerable<DataRow> result =
from c in dt2.AsEnumerable()
join p in dt1.AsEnumerable()
on new { ID = dt2.Columns[3], NAME = dt2.Columns[4], ACCOUNT = dt2.Columns[5], DATE = dt2.Columns[6], AMOUNT = dt2.Columns[7] }
equals new { ID = dt1.Columns[5], NAME = dt1.Columns[6], ACCOUNT = dt1.Columns[7], DATE = dt1.Columns[8], AMOUNT = dt1.Columns[9] }
into rightjoin
from p in rightjoin.DefaultIfEmpty()
select c;
dtN = result.CopyToDataTable<DataRow>();
运行完上面代码,dtN输出表字段和dt2一样。按设计要求,我需要获取dt1和dt2进行右关联后的全部字段,请问我应该怎样修改上面的代码?还请各路大侠附上代码说明,小弟拜谢啦
------解决思路----------------------
select c 改为
select new {
a=c.xxx,
b=c.xxxx,
c=c.xxxxx
......
};
------解决思路----------------------
如果需要返回新类,就定义一个类,字段为你要查询出的所有字段。根据1楼方式,
select new newClass{
c1 = c.xxx,
p1 = p.xxx
}
如果不需要,1楼方式即可。