使用Linq如何
对于以下LINQ
C# code
        DataTable dt1=new DataTable();
        DataTable dt2 = new DataTable();
....
//DataTable 赋值,都有一个主键ID
....
        var result = from a in dt1.AsEnumerable()
                     join b in dt2.AsEnumerable()
                     on a.Field<int>("ID") equals
                     b.Field<int>("ID") 
                     select a;
  DataTable 中只有主键ID是已知的,其它列的名称未知,关联查询后,如何返回a与b关联后的结果(包括a和b的字段信息)。类似于SQL中二个表Inner join的结果。
------解决方案-------------------- 
------解决方案-------------------- from a in dt1.AsEnumerable()
join b in dt2.AsEnumerable()
on a.Field<int>("ID") equals
b.Field<int>("ID")  
select new  
{
 列名1=a.你需要的列1,
 列名2=a.你需要的列2,
 列名3=b.你需要的列1,
 列名4=b.你需要的列2,
 ......
}
返回类型为IQueryable,可以直接绑定为数据源
绑定表达式可以直接写你自定义的“列名1”,“列名2”...
如果需要手动取值,可以使用反射取值:代码如下:
C# code
foreach (var item in IQueryable)
 {
string _str= (item.GetType().InvokeMember("列名1", System.Reflection.BindingFlags.GetProperty, null, item, null)).ToString();                                     
}
------解决方案--------------------  探讨 ------解决方案-------------------- ------解决方案-------------------- 探讨 ------解决方案-------------------- ------解决方案-------------------- ------解决方案-------------------- ------解决方案--------------------