日期:2014-05-19  浏览次数:20420 次

|M| 求最科学的两个DataTable 的方法
如我有表
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
谢谢



------解决方案--------------------
最简单的两个表关联呀。

select a.id,a.name ,b.price from dt1 a INNER JOIN dt2 b

on a.id= b.id

------解决方案--------------------
学习
------解决方案--------------------
最基本的SQL连接啊!
嗯. 搂主是说 SQL ,还是 别的?
------解决方案--------------------
要看你表的设计了,
Select dt1.ID, dt1.name, dt2.Price From dt1, dt2 Where dt1.ID = dt2.ID
------解决方案--------------------
你的表呢,看看
select a.id,a.name ,b.price from dt1 a INNER JOIN dt2 b

on a.id= b.id
------解决方案--------------------

------解决方案--------------------
还是这个问题哦
------解决方案--------------------
是说的写法么??要是SQL那就用内联


select a.id,a.name ,b.price
from dt1 A
inner join dt2 B
on a.id= b.id
------解决方案--------------------
这样的数据处理 最好是在数据库端 进行.
像上面的用 链表查询 很容易获取
------解决方案--------------------
我看楼主的意思是在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);
------解决方案--------------------
先将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();