如何在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
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();
}
}
}