linq datatable join合并返回数据

宇峰科技 2011-10-23 01:21:46
DataTable dt1 = new DataTable();
dt1.Columns.Add("c1");
dt1.Columns.Add("c2");
DataRow dr1 = dt1.NewRow();
dr1["c1"] = "a";
dr1["c2"] = "ad";
dt1.Rows.Add(dr1);

DataTable dt2 = new DataTable();
dt2.Columns.Add("c3");
dt2.Columns.Add("c4");
DataRow dr2 = dt2.NewRow();
dr2["c3"] = "a";
dr2["c4"] = "b";


DataRow dr3 = dt2.NewRow();
dr3["c3"] = "a";
dr3["c4"] = "c";

dt2.Rows.Add(dr2);
dt2.Rows.Add(dr3);

也就是相当于内联接,根据第一个表的c1等于第二个表的c3,查寻出两个表的所有内容
谢谢了.没分了...急啊
...全文
500 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
宇峰科技 2011-10-31
  • 打赏
  • 举报
回复
已解决,谢谢了。
ruanwei1987 2011-10-31
  • 打赏
  • 举报
回复
ws_hgo 2011-10-24
  • 打赏
  • 举报
回复
		static void Main()
{
DataTable dt1 = new DataTable();
dt1.Columns.Add("c1");
dt1.Columns.Add("c2");
DataRow dr1 = dt1.NewRow();
dr1["c1"] = "a";
dr1["c2"] = "ad";
dt1.Rows.Add(dr1);

DataTable dt2 = new DataTable();
dt2.Columns.Add("c3");
dt2.Columns.Add("c4");
DataRow dr2 = dt2.NewRow();
dr2["c3"] = "a";
dr2["c4"] = "b";

DataRow dr3 = dt2.NewRow();
dr3["c3"] = "a";
dr3["c4"] = "c";

dt2.Rows.Add(dr2);
dt2.Rows.Add(dr3);

var query = from t1 in dt1.AsEnumerable()
join t2 in dt2.AsEnumerable() on t1.Field<string>("c1") equals t2.Field<string>("c3")
select new
{
c1 = t1.Field<string>("c1"),
c2 = t1.Field<string>("c2"),
c3 = t2.Field<string>("c3"),
c4 = t2.Field<string>("c4")
};
query.ToList().ForEach(q => Console.WriteLine("{0}\t{1}\t{2}\t{3}", q.c1, q.c2, q.c3, q.c4));

}
q107770540 2011-10-23
  • 打赏
  • 举报
回复

void Main()
{
DataTable dt1 = new DataTable();
dt1.Columns.Add("c1");
dt1.Columns.Add("c2");
DataRow dr1 = dt1.NewRow();
dr1["c1"] = "a";
dr1["c2"] = "ad";
dt1.Rows.Add(dr1);

DataTable dt2 = new DataTable();
dt2.Columns.Add("c3");
dt2.Columns.Add("c4");
DataRow dr2 = dt2.NewRow();
dr2["c3"] = "a";
dr2["c4"] = "b";


DataRow dr3 = dt2.NewRow();
dr3["c3"] = "a";
dr3["c4"] = "c";

dt2.Rows.Add(dr2);
dt2.Rows.Add(dr3);

var query=from t1 in dt1.AsEnumerable()
join t2 in dt2.AsEnumerable()
on t1.Field<string>("c1") equals t2.Field<string>("c3")
select new {
c1=t1.Field<string>("c1"),
c2=t1.Field<string>("c2"),
c4=t2.Field<string>("c4")
};


}
宇峰科技 2011-10-23
  • 打赏
  • 举报
回复
没人吗

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧