C# 将联接查询的输出保存到datatable
我正在尝试使用C#中的查询连接两个数据表 我有两个数据表,C# 将联接查询的输出保存到datatable,c#,join,datatable,C#,Join,Datatable,我正在尝试使用C#中的查询连接两个数据表 我有两个数据表,Crops和HailGridLatLon 作物包含列hail\u grid\u id,value,count,year HailGridLatLon包含列HAILGRIDID,lat,lon 我需要提取Crops数据表中每个hail\u grid\u id对应的lat和lon值 我的问题是,在执行连接查询之后,我需要将纬度和经度的结果值保存到Cropsdatatable中的新列中。我发现的关于连接查询和select子句的所有内容只会将结果
Crops
和HailGridLatLon
作物包含列hail\u grid\u id
,value
,count
,year
HailGridLatLon
包含列HAILGRIDID
,lat
,lon
我需要提取Crops
数据表中每个hail\u grid\u id
对应的lat
和lon
值
我的问题是,在执行连接查询之后,我需要将纬度和经度的结果值保存到Crops
datatable中的新列中。我发现的关于连接查询和select子句的所有内容只会将结果打印到控制台,根本不会保存它们
以下是我正在运行的查询代码:
var results = from table1 in Crops.AsEnumerable()
join table2 in HailGridLatLon.AsEnumerable() on table1[0] equals table2[0]
select new
{
hail_grid_id = table1[0], value = table1[1], count = table1[2], year = table1[3], latitude = table2[1], longitude = table2[2]
};
我知道要将值打印到屏幕上,我需要以下循环:
foreach (var item in results)
{
Console.WriteLine(String.Format("{0} {1} {2} {3} {4} {5}", item.hail_grid_id, item.value, item.count, item.year, item.latitude, item.longitude));
}
但正如我所说,我需要保存纬度和经度,以便可以将它们添加到数据表中。或者,也可以将结果中存储的信息保存到新的数据表中。有没有办法做到这一点?我似乎基本上有一个对象类型“results”,但有没有办法将其转换为任何其他变量类型,最好是数据表
p、 我知道嵌套for循环可以实现这一点,但这些表非常庞大,这样的方法需要24小时以上才能完成。您能否编写一个在数据库级别连接这两个表的查询?这可能是将来的一个选项,然而,其中一个数据库尚未完成,我正在尝试编写一些代码来执行必要的分析,以便在数据库最终确定后可以继续使用。因此,我的强烈偏好是找出一种用c#实现的方法。我喜欢我正在尝试的join方法,因为它对大量数据运行得非常快,但绝对必须能够以这样一种方式存储联接表,即可以使用存储的值执行计算。