日期:2014-05-18  浏览次数:20398 次

怎样合并这样的datatable?
两个datatable的格式如下
datatbale1
s_code s_name
  1 姓名一
  2 姓名二

datatable2
s_code s_age
  1 11
  2 12
  3 14
  5 16

我需要合并的结果是
s_code s_name s_age
  1 姓名一 11
  2 姓名二 12


datatable2中s_code里在datatable1中不存在的就不需要了,如 3 和 5就不需要

我用datatable1.Merge(datatable2);它会全部显示的

------解决方案--------------------
请问一个这两个datatbale1 是怎么得到滴啊,
能否直接在数据库中合并只返回一个datatbale列
------解决方案--------------------
C# code

建议将这种东西放在SQL里面去处理,如果一定要在程序中处理的话,可以如下:
ds.Tables["datatbale1"].Columns.Add(new DataColumn("s_age")); //先给datatbale1增加一列s_age列。

for(int i=0;i<ds.Tables["datatbale1"].Rows.Count;i++)
{
    for(int j=0;j<ds.Tables["datatbale2"].Rows.Count;j++)
    {
        if(ds.Tables["datatbale1"].Rows[i]["s_code"].ToString()==ds.Tables["datatbale2"].Rows[j]["s_code"].ToString())  //判断当两个datatable的s_code相等时,将datatbale1的s_age等于datatbale2的s_age。
        {
            ds.Tables["datatbale1"].Rows[i]["s_age"]=ds.Tables["datatbale2"].Rows[j]["s_age"].ToString();
        }
    }
}
//这样datatable1就变成楼主想要的合并后的结果了。
DataGrid1.DataSource=ds.Tables["datatbale1"];
DataGrid1.DataBind();