如我有表
dt1
ID name
1  Age
2  Apple
3  Orange
dt2
ID  Price
3   10 
1   6
2   7
合并成
ID name   Price
1  Age    6
2  Apple  7
3  Orange 10
谢谢

解决方案 »

  1.   

    最简单的两个表关联呀。select a.id,a.name ,b.price from dt1 a INNER JOIN dt2 b on a.id= b.id 
      

  2.   

    最基本的SQL连接啊!
    嗯. 搂主是说 SQL ,还是 别的?
      

  3.   

    要看你表的设计了,
    Select dt1.ID, dt1.name, dt2.Price From dt1, dt2 Where dt1.ID = dt2.ID
      

  4.   

    你的表呢,看看
    select a.id,a.name ,b.price from dt1 a INNER JOIN dt2 b on a.id= b.id
      

  5.   

    是说的写法么??要是SQL那就用内联
    select a.id,a.name ,b.price 
    from dt1 A
    inner join dt2 B
    on a.id= b.id
      

  6.   

    我看楼主的意思是在DataTable中对数据进行的处理,我有如下的代码,楼主参考下是否合题意:
    DataTable dt1 = new DataTable();
    dt1.Columns.Add("ID", typeof(int));
    dt1.Columns.Add("Name", typeof(string));
    dt1.PrimaryKey = new DataColumn[] { dt1.Columns[0]};
    dt1.Rows.Add(1, "Age");
    dt1.Rows.Add(2, "Apple");
    dt1.Rows.Add(3, "Orange");DataTable dt2 = new DataTable();
    dt2.Columns.Add("ID", typeof(int));
    dt2.Columns.Add("Price", typeof(decimal));
    dt2.PrimaryKey = new DataColumn[] { dt2.Columns[0] };
    dt2.Rows.Add(1, 10);
    dt2.Rows.Add(2, 6);
    dt2.Rows.Add(3, 7);DataTable dt3 = dt1.Copy();
    dt3.Merge(dt2);
      

  7.   

    问题的关键是给DataTable添加键值PrimaryKey.
    在此例中"ID"应是关键字了.
      

  8.   

    先将dt1 dt2添加到 ds里
    DataSet ds = new DataSet();
    ds.Tables.Add(dt1);
    ds.Tables.Add(dt2);建立 dt1,dt2之间的关系(用ID相联 父表为dt1,子表为dt2 并且父表ID要唯一)
    ds.Relations.Add("关系",ds.Tables[0].Columns["ID"],ds.Tables[1].Columns["ID"]);================================================
    下面为完成代码 供参考
    DataRow dr ;
    DataTable dt1 = new DataTable(); 
    dt1.Columns.Add("ID",typeof(System.Int32));
    dt1.Columns.Add("name",typeof(System.String));
    dr = dt1.NewRow();
    dr["ID"] = "1";
    dr["name"] = "Age";
    dt1.Rows.Add(dr);
    dr = dt1.NewRow();
    dr["ID"] = "2";
    dr["name"] = "Apple";
    dt1.Rows.Add(dr);
    dr = dt1.NewRow();
    dr["ID"] = "3";
    dr["name"] = "Orange";
    dt1.Rows.Add(dr);DataTable dt2 = new DataTable();
    dt2.Columns.Add("ID",typeof(System.Int32));
    dt2.Columns.Add("Price",typeof(System.String));
    dr = dt2.NewRow();
    dr["ID"] = "3";
    dr["Price"] = "10";
    dt2.Rows.Add(dr);
    dr = dt2.NewRow();
    dr["ID"] = "1";
    dr["Price"] = "6";
    dt2.Rows.Add(dr);
    dr = dt2.NewRow();
    dr["ID"] = "2";
    dr["Price"] = "7";
    dt2.Rows.Add(dr);
    //以上为购建两个DataTable 并赋值DataSet ds = new DataSet();
    ds.Tables.Add(dt1);
    ds.Tables.Add(dt2);
    ds.Relations.Add("关系",ds.Tables[0].Columns["ID"],ds.Tables[1].Columns["ID"]);
    //以上为 填充到DataSet 并建立关系foreach(DataRow dt1Row in ds.Tables[0].Rows)
    {
    Response.Write(dt1Row["ID"].ToString() + "," + dt1Row["name"].ToString()
    + "," + dt1Row.GetChildRows("关系")[0]["Price"].ToString() +"<br>");
    }
    //以上为显示结果 (注意:父表与子表是1对1得我关系)
    1对多的时候 可以用 foreach(DataRow dt1Row in dt1Row.GetChildRows(关系))取得全部相对应子表数据
      

  9.   

    hbxtlhx(平民百姓)的
     方法最好
      

  10.   

    大家我说的是在数据库里面读出来两个表进行合并
    而不是在数据库里面怎么读感觉hbxtlhx(平民百姓)或者xinfan(新凡) 的可行
    先测试一下谢谢大家
      

  11.   

    关键是给DataTable添加键值PrimaryKey.
      

  12.   

    cpp2017(慕白兄) 说的我心里暖和和的:)
      

  13.   

    hbxtlhx(平民百姓)太强了
    就要在
    dt1.PrimaryKey = new DataColumn[] { dt2.Columns[0] };
    dt2.PrimaryKey = new DataColumn[] { dt2.Columns[0] };
      

  14.   

    hbxtlhx(平民百姓) 方法不错 适用于2005
      

  15.   

    从来没有用过在DataTable中对数据进行的处理所以没有理解。