首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

,关于LINQ TO DATASET返回两个DATAROW集的有关问题

2012-12-19 
求救,关于LINQ TO DATASET返回两个DATAROW集的问题实例:原先的系统是通过dbHelper获得两个DataTable dtIte

求救,关于LINQ TO DATASET返回两个DATAROW集的问题
实例:
原先的系统是通过dbHelper获得两个DataTable dtItem和dtSubject,我现在需要做二次开发,但对LINQ不是太熟,其中
var valu = from item in dtItem.AsEnumerable()
           join subject in dtSubject.AsEnumerable() on item.Field<string>("SubMark") equals subject.Field<string>("SubMark")
           where subject.Field<bool>("SubIsDeleted") == false
           select new { item, subject };

以上LINQ查询语句中,我如何不用foreach直接把item和subject转成DataTable
[最优解释]
DataTable dt = new DataTable();
dt.Columns.Add("item");
dt.Columns.Add("subject");
valu.ToList().ForEach(x => dt.Rows.Add(x.item, x.subject));
[其他解释]


DataTable dtItem2 = dtItem.Clone();
DataTable dtSubject2 = dtSubject.Clone();

foreach(var n in valu)
{
   dtItem2.Rows.Add(n.item);
   dtSubject2.Rows.Add(n.subject);
}


[其他解释]
谢谢caozhy,我这里的item,subject是DataRow集合,并不是两个字段,正如

var valu = from item in dtItem.AsEnumerable()
  join subject in dtSubject.AsEnumerable() on item.Field<string>("SubMark") equals subject.Field<string>("SubMark")
  where subject.Field<bool>("SubIsDeleted") == false
  select item;

中的item一样
[其他解释]
DataTable dt = new DataTable();
dt.Columns.Add("item");
dt.Columns.Add("subject");
valu.ToList().ForEach(x => dt.Rows.Add(x.item["字段名1"].ToString(), x.subject));

只是举例,你照着写
[其他解释]
没有像CopyToDataTable()这种便捷的方法吗
[其他解释]
谢谢各位,foreach的方法我是知道的,不过这样如果数量大的话会不会影响效率

热点排行