我正在尝试使用 C# 中的查询连接两个数据表。
我有两个数据表,Crops
并且HailGridLatLon
.
Crops 包含列hail_grid_id
, value
, count
, year
。
HailGridLatLon
包含列hail_grid_id
, lat
, lon
.
我需要提取数据表中每个对应的lat
和值。lon
hail_grid_id
Crops
我的问题是,在执行连接查询后,我需要将纬度和经度的结果值保存到数据表中的新列中Crops
。我发现的有关连接查询和选择子句的所有内容都只会将结果打印到控制台,根本不会保存它们。
这是我正在运行的查询代码:
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));
}
但就像我说的,我需要保存纬度和经度,以便将它们添加到数据表中。或者只是将存储在结果中的信息保存到新的数据表中。有没有办法做到这一点?我似乎基本上有一个对象类型“结果”,但是有没有办法将它转换为任何其他变量类型,最好是数据表?
ps 我知道这可以通过嵌套的 for 循环来完成,但是这些表很大,这样的方法需要 24 小时以上才能完成。