日期:2014-05-17  浏览次数:20992 次

两个dataset合并,怎么排除重复的id?
如题,我有两个查询出来的ds,ds1,当中有重复的id,
 ds.Merge(ds1, true, MissingSchemaAction.AddWithKey);合并
请问怎么去除重复的id?

------解决方案--------------------


public DataSet MergeDataSet(DataSet TotalDataSet, DataSet UnitDataSet)
    {
        int flag = 0;
        DataSet tempDataSet = TotalDataSet.Copy();
        foreach (DataRow unitDr in UnitDataSet.Tables[0].Rows)
        {
            flag = 0;
            foreach (DataRow totalDr in TotalDataSet.Tables[0].Rows)
            {
                if (unitDr[3].ToString() == totalDr[3].ToString())
                {
                    flag = 1;
                    break;
                }
            }

            if (flag == 0)
            {
                DataRow tempDr = tempDataSet.Tables[0].NewRow();
                tempDr.ItemArray = unitDr.ItemArray;
                tempDataSet.Tables[0].Rows.Add(tempDr);
            }
        }
        return tempDataSet;
    }


------解决方案--------------------
你应该是两个ds中的datatable进行合并吧。你试试这个

IEnumerable<DataRow> query = dt.AsEnumerable().Concat(dt1.AsEnumerable()).Distinct(比较器);

------解决方案--------------------
这样合并挺浪费性能的,办法是有的,
1、你先以一个DS为基准,循环第二个DS,在增加前先在DS1中用ID搜索一