table1  
id  name
1   a
2   b
3   c
4   d
table 2
id   class
1    c1
2    c2
4    c2
合并后:
id   name   class
1    a       c1
2    b       c2
3    c
4    d      c2

解决方案 »

  1.   

    其实这种情况处理的办法很多,直接在sql里面处理,或者用linq都是可以的,下面是另外一种办法。
    下面这段代码dt1对应table1 ; dt2对应table 2 ;dt3是合成之后表。           DataTable dt3 = new DataTable();
                DataColumn dc1 = new DataColumn("ID");
                DataColumn dc2 = new DataColumn("Name");
                DataColumn dc3 = new DataColumn("Class");
                dt3.Columns.Add(dc1);
                dt3.Columns.Add(dc2);
                dt3.Columns.Add(dc3);            foreach (DataRow dr in dt1.Rows)
                {
                    DataRow d = dt3.NewRow();
                    d["ID"]=dr["ID"].ToString();
                    d["Name"]=dr["Name"].ToString();
                    DataRow[] drs = dt2.Select("ID=" + dr["ID"].ToString());
                    d["Class"] = drs.Count()==0?null:drs[0]["Class"].ToString();
                    dt3.Rows.Add(d);
                }