连接两个数据表
我有两个DataTable连接两个数据表
DataTable1:
id name
-- ----
1 jhon
2 peter
DataTable2:
city country
--- -------
Sevilla Spain
Granada Spain
的ID对应。我需要连接这些数据表的列。
这是期望的结果:
id name city country
-- ---- ---- -------
1 Jhon Sevilla Spain
2 Peter Granada Spain
任何想法?
谢谢!
我假设你的数据表名称是“DataTable1”和“DataTable2”,您可以通过使用下面的代码在DataTable1合并它们;
Datatable1.Columns.Add("city", typeof(string));
Datatable1.Columns.Add("country", typeof(string));
for (int i = 0; i < Datatable1.Rows.Count; i++)
{
Datatable1.Rows[i][2] = DataTable2.Rows[i][0].toString();
Datatable1.Rows[i][3] = DataTable2.Rows[i][1].toString();
}
看起来不错,但是在数据库构建中会不会更容易? – Vogel612 2013-02-15 12:09:35
我认为这是我的解决方案。我可以试试。为什么选择“ConvertSafe”?我有这个功能的错误。 – user2024475 2013-02-15 12:16:44
@ user2024475对不起,这是我自己的课程,你可以使用.toString()也。我编辑了我的答案,现在你可以检查 – 2013-02-15 12:20:07
您需要添加主键表2,并添加两个表之间的关系。
停止。没有必要,如果他只是在没有任何实体框架的情况下使用sql,也没有什么帮助(尽管你可能猜对了;)) – Vogel612 2013-02-15 11:44:38
为什么?如何添加关系? – user2024475 2013-02-15 11:47:55
@ user2024475 again:你正在使用哪种数据库,你的项目中是否有数据库模型,数据库存储在哪里? – Vogel612 2013-02-15 12:08:26
使用下面的代码。
SqlDataSource1.ConnectionString = "--YOUR CONNECTION STRING--";
SqlDataSource1.SelectCommand = "select DataTable1.id,DataTable1.name,DataTable2.city,DataTable2.country from DataTable1,DataTable2
";
SqlDataSource1.DataBind();
祝你好运!
错了,它不是sql - “我需要在c#中做,而不是在sql - user2024475” – 2013-02-15 11:58:26
嘿伯克,我怎么知道的! 你应该在你的问题中提到这一点。 – 2013-02-15 12:10:00
是的,我知道,这就是为什么我给你一个机会,你发展你的答案,而不是给你-1。 – 2013-02-15 12:11:57
你可以使用DataTable类
错误,在两个数据表中没有共同的列 – 2013-02-15 11:59:01
的玛吉方法你可以把LINQ的benifit
- 投你的数据表中的IEnumerable
-
那么你可以申请LINQ过去。
var results = from myRow in DataTable1.AsEnumerable() var results2 = from myRow in DataTable2.AsEnumerable() var result3= from row1 in results join row2 in results2 select new { row1.id, row1.name, row2.city, row2.country };
[你尝试过什么?](http://whathaveyoutried.com) – ryadavilli 2013-02-15 11:43:05
也许告诉我们您所使用的查询类型?实体框架还是纯sql?或其他什么? – Vogel612 2013-02-15 11:43:26
两张桌子的记录应该如何组合?表1中的第1行到表2中的第1行,还是两个表共享的关键列? – 2013-02-15 11:43:36