如何在c#中根据最后修改日期从两个数据表中获取最新的记录行

本文关键字:数据表 两个 获取 最新 记录 最后 日期 修改 | 更新日期: 2023-09-27 18:16:53

帮助我编写c# LINQ语句来比较Datatable 1和Datatable 2,两者都是从不同的来源和相同的模式中提取的。

需要根据上次修改找到最新的记录,并将所有更改合并到一个数据表或单独的数据表(插入/更新/删除)

下面是场景

表1:From Source X

ID     Name       Age      LastModified
--------------------------------------------------
1      Raj        32       10/8/2015 2:26:28 PM
2      Shiva      27       10/9/2015 10:36:53 PM 
3      John       86       10/5/2015 7:42:25 PM 

表2:From Source Y

ID  Name   Age  LastModified
--------------------------------------
1   Raj    38   10/9/2015 2:26:28 PM
2   Shiva  26   10/9/2015 9:36:53 PM
3   John   86   10/5/2015 7:42:25 PM
4   Lale   56   10/12/2015 3:36:26 PM

合并数据表和最新数据表

ID  Name    Age   LastModified
----------------------------------------
1   Raj     38    10/9/2015 2:26:28 PM
2   Shiva   27    10/9/2015 10:36:53 PM
3   John    86    10/5/2015 7:42:25 PM 
4   Lale    56    10/12/2015 3:36:26 PM

如何在c#中根据最后修改日期从两个数据表中获取最新的记录行

Easy

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("ID", typeof(int));
            dt.Columns.Add("Name", typeof(string));
            dt.Columns.Add("Age", typeof(int));
            dt.Columns.Add("LastModified", typeof(DateTime));
            dt.Rows.Add(new object[] {1, "Raj", 38, DateTime.Parse("10/9/2015 2:26:28 PM")});
            dt.Rows.Add(new object[] {2, "Shiva", 27, DateTime.Parse("10/9/2015 10:36:53 PM")});
            dt.Rows.Add(new object[] {3, "John", 86, DateTime.Parse("10/5/2015 7:42:25 PM")});
            dt.Rows.Add(new object[] {4, "Lale", 56, DateTime.Parse("10/12/2015 3:36:26 PM")});
            DataRow lastest = dt.AsEnumerable().OrderByDescending(x => x.Field<DateTime>("LastModified")).FirstOrDefault();
        }
    }
}
​