2017-08-16 40 views
-1

我有两个DataTables - 一个是从csv文件创建的,另一个是从数据库表创建的。比较DataTables并有条件地更新一个

enter image description here

  1. 我如何? 根据id和名称比较两个DataTables。
  2. 如果记录存在于:在DataTableFromDB
  3. 更新的结束日期,如果在这两个存在记录: - - DataTableFromDB而不是DataTableFromFile:更新DataTableFromFile而不是在DataTableFromDB在DataTableFromDB

  4. 插入新记录,如果在存在记录来自DataTableFromFile中的值的DataTableFromDB

  5. 我可以遍历集合,但这太费时。

  6. 我不想在数据库
+3

_“我可以循环收集,但这太费时了”_嗯,你试过了吗?如果是这样,请显示您的代码并解释问题。如何比较所有没有循环的行? –

+0

你为此编写了什么代码?你面临什么问题? –

+1

你为什么使用DataTable而不是强类型的对象模型? – mason

回答

0

做这个操作你既可以数据表转换成使用

datatable.AsEnumerable() 
.ToDictionary<DataRow, string, string>(row => row[0].ToString(), 
             row => row[1].ToString()); 

一本字典,你可以执行后的任何行动。

+0

谢谢Amit Tiwari ...我甚至更进了一步,将DataTable转换为列表。实现了IEqualityComparer接口,并做了一个List.Except()等 - 但是转换所花费的时间将Linq的好处带到Object查询中。最后,我在Sql服务器中实现了作为Store Proc的功能 - 使用Merge。感谢所有的帮助。感谢你的努力。 – saklo

+0

没问题的伴侣 –