将连接查询的输出保存到数据表

时间:2012-08-10 20:43:43

标签: c# join datatable

我正在尝试使用C#中的查询连接两个数据表。

我有两个数据表,CropsHailGridLatLon

裁剪包含hail_grid_idvaluecountyear列。

HailGridLatLon包含hail_grid_idlatlon列。

我需要提取lat数据表中每个lon对应的hail_grid_idCrops值。

我的问题是,在执行连接查询后,我需要将纬度和经度的结果值保存到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));
        }

但就像我说的那样,我需要以这样的方式保存纬度和经度,以便将它们添加到数据表中。或者只是将存储在结果中的信息保存到新的数据表中。有没有办法做到这一点?我似乎基本上有一个对象类型“结果”,但有没有办法将其转换为任何其他变量类型,最好是数据表?

P.S。我知道这可以通过嵌套for循环来完成,但是这些表非常庞大,这样的方法需要24小时才能完成。

0 个答案:

没有答案