C# 连接两个数据表
我有两个数据表 数据表1:C# 连接两个数据表,c#,asp.net,datatable,C#,Asp.net,Datatable,我有两个数据表 数据表1: id name -- ---- 1 jhon 2 peter 数据表2: city country --- ------- Sevilla Spain Granada Spain id是对应的。我需要连接这些数据表的列 这是期望的结果: id name city country -- ---- ---- ------- 1 Jhon Sevilla Spain 2 Peter Grana
id name
-- ----
1 jhon
2 peter
数据表2:
city country
--- -------
Sevilla Spain
Granada Spain
id是对应的。我需要连接这些数据表的列
这是期望的结果:
id name city country
-- ---- ---- -------
1 Jhon Sevilla Spain
2 Peter Granada Spain
有什么想法吗
谢谢 您需要向表2添加主键,并在两个表之间添加关系。我假设您的数据表名称为“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();
}
Datatable1.Columns.Add(“city”,typeof(string));
Datatable1.Columns.Add(“国家”,类型(字符串));
对于(int i=0;i
使用下面的代码
SqlDataSource1.ConnectionString = "--YOUR CONNECTION STRING--";
SqlDataSource1.SelectCommand = "select DataTable1.id,DataTable1.name,DataTable2.city,DataTable2.country from DataTable1,DataTable2
";
SqlDataSource1.DataBind();
祝你好运 您可以使用DataTable类的marge方法您可以从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
};
也许可以告诉我们您使用的是哪种查询类型?实体框架还是纯sql?或者其他什么?这两个表格的记录应该如何组合?从表1的第1行到表2的第1行,或者两个表是否都共享一个键列?我需要在c#中执行,而不是在SQL中。变量的类型是DataTabletop。没有必要,如果他只是使用sql而没有任何实体框架(即使你可能猜对了),也没有什么帮助。为什么?如何添加关系?@user2024475:您使用的是哪种数据库,您的项目中是否有数据库模型,数据库存储在哪里?错误,它不是sql—“我需要在c#中执行,而不是在sql中执行–user2024475”嘿,Berkay,我怎么知道!你应该在你的问题中提到这一点。是的,我知道,这就是为什么我给你一个机会来发展你的答案,而不是给你-1。谢谢你。我已经重新格式化了我的答案。也许它能帮助你,你现在可以给我+1!!首先,这不是我的问题,其次他只是想合并两个数据表,所以,你的答案仍然是无效的。试着用c来回答这个问题。若你们不能,那个么删除答案更合适。错了,在两个DataTables中并没有公共列看起来不错,但这在数据库构建中不是更容易吗?我认为这是我的解决方案。我可以试试。为什么是“安全”?此函数有一个错误。@user2024475是的,很抱歉,您也可以使用我自己的类。toString()。我编辑了我的答案,现在你可以检查了that@Vogel612是的,这是更“恰当”的方式。但有时合并两个datatable并不是一件坏事。@Berkay我觉得它太傻了:创建两个表。然后将表2添加到表1中。保存表1和表2。从现在开始使用表1的全部代码,然后。。。就是这样,你不是真的那样做的,是吗?只需将linq添加到标签中,就可以使用linq发布答案…@Vogel612是的,我做了我认为应该做的。很抱歉告诉你,但你不应该让人们使用他们不理解的东西。你会不会在你可能看到的问题下面看看,这个家伙不知道实体框架是什么。这是林克的基本借口。因此,将linq添加到标签中是完全不合适的,不值得一个2k代表user@Vogel612就
2K
rep用户而言,我可以轻松到达那里。大约一天内。:)@但至少你对EF
有一些(即使是很小的)知识,但C#不一定能使LINQ