C# dataTable的linq联合查询,插入到新的dataTable中

来源:互联网 发布:手机淘宝的二手在哪里 编辑:程序博客网 时间:2024/05/17 06:59
//获取要比对的数据            DataTable dataTable_yh = (DataTable)gridControl1.DataSource;            DataTable dataTable_tg = (DataTable)gridControl2.DataSource;            //是否有必要比            if (dataTable_yh == null || dataTable_yh == null)            {                MessageBox.Show("没有需要比较的数据");                return;            }

//整车整备质量不一致            var zczbzlData = from d in dataTable_yh.AsEnumerable()                             join dd in dataTable_tg.AsEnumerable()                             on d.Field<string>("CLXH") equals dd.Field<string>("CLXH")                             where d.Field<string>("RLLX") == dd.Field<string>("RLLX")                             && d.Field<string>("ZCZBZL") != dd.Field<string>("ZCZBZL")                             select new                             {                                 VIN = d.Field<string>("VIN"),                                 CLXH = d.Field<string>("CLXH"),                                 RLLX = d.Field<string>("RLLX"),                                 YH_ZCZBZL = d.Field<string>("ZCZBZL"),                                 TG_ZCZBZL = dd.Field<string>("ZCZBZL")                             };            this.gcTable1.DataSource = zczbzlData.ToList();            //油耗实际值不一致            var zhgkData = from d in dataTable_yh.AsEnumerable()                             join dd in dataTable_tg.AsEnumerable()                             on d.Field<string>("CLXH") equals dd.Field<string>("CLXH")                             where d.Field<string>("RLLX") == dd.Field<string>("RLLX")                             && d.Field<string>("ZHGK") != dd.Field<string>("ZHGK")                             select new                             {                                 VIN = d.Field<string>("VIN"),                                 CLXH = d.Field<string>("CLXH"),                                 RLLX = d.Field<string>("RLLX"),                                 YH_ZHGK = d.Field<string>("ZHGK"),                                 TG_ZHGK = dd.Field<string>("ZHGK")                             };            this.gcTable2.DataSource = zhgkData.ToList();            //通告中不存在            var cllxArr = dataTable_tg.AsEnumerable().Select(d => d.Field<string>("CLXH")).ToArray();            var rllxArr = dataTable_tg.AsEnumerable().Select(d => d.Field<string>("RLLX")).ToArray();            var errorData = from d in dataTable_yh.AsEnumerable()                            where !cllxArr.Contains(d.Field<string>("CLXH"))                            || !rllxArr.Contains(d.Field<string>("RLLX"))                            select new                            {                                VIN = d.Field<string>("VIN"),                                CLXH = d.Field<string>("CLXH"),                                RLLX = d.Field<string>("RLLX")                            };            this.gcTable3.DataSource = errorData.ToList();

//比较完初始选中的tab页            int selectTabIndex = 1;            if (zczbzlData.Count() < 1)             {                selectTabIndex = 2;                if (zhgkData.Count() < 1)                 {                    selectTabIndex = 3;                    if (errorData.Count() < 1)                    {                        MessageBox.Show("数据一致");                        return;                    }                }            }            xtraTabControl1.SelectedTabPageIndex = selectTabIndex;
如果你们有DEV的插件绑定list<T>,点击这里,给你灵感
1 0
原创粉丝点击