110,499
社区成员
发帖
与我相关
我的任务
分享
DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();
dt1.Columns.Add("matcode", typeof(System.String));
dt1.Columns.Add("matsize", typeof(System.Decimal));
dt1.Columns.Add("matsunit", typeof(System.String));
dt1.Columns.Add("matcolor", typeof(System.String));
dt1.Columns.Add("asn_sqty", typeof(System.Decimal));
//
dt2.Columns.Add("matcode", typeof(System.String));
dt2.Columns.Add("matsize", typeof(System.Decimal));
dt2.Columns.Add("matsunit", typeof(System.String));
dt2.Columns.Add("matcolor", typeof(System.String));
dt2.Columns.Add("asn_sqty", typeof(System.Decimal));
//
var res1 = from r1 in dt1.AsEnumerable()
join r2 in dt2.AsEnumerable() on new
{
matcode = r1.Field<string>("matcode").Trim(),
matsize = r1.Field<decimal>("matsize"),
matsunit = r1.Field<string>("matsunit").Trim(),
matcolor = r1.Field<string>("matcolor").Trim(),
} equals new
{
matcode = r2.Field<string>("matcode").Trim(),
matsize = r2.Field<decimal>("matsize"),
matsunit = r2.Field<string>("matsunit").Trim(),
matcolor = r2.Field<string>("matcolor").Trim(),
} into g1
from r2 in g1.DefaultIfEmpty()
where r1.Field<decimal>("asn_sqty") != (r2 == null ? 0 : r2.Field<decimal>("asn_sqty"))
select new
{
matcode = r1.Field<string>("matcode").Trim(),
matsize = r1.Field<decimal>("matsize"),
matsunit = r1.Field<string>("matsunit").Trim(),
matcolor = r1.Field<string>("matcolor").Trim(),
asn_sqty1 = r1.Field<decimal>("asn_sqty"),
asn_sqty2 = r2 == null ? 0 : r2.Field<decimal>("asn_sqty"),
isAct = r2 == null ? 1 : 2,
};