【问题标题】:How to get the latest record rows from a two datatable based on last modified date in C#?如何根据 C# 中的最后修改日期从两个数据表中获取最新记录行?
【发布时间】:2016-01-07 14:20:40
【问题描述】:

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

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

这里是场景

数据表 1:来自源 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:来自源 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# linq datatable


【解决方案1】:

简单

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();
        }
    }
}
​

【讨论】:

  • 感谢 Jdweng,正如我在示例中提到的,我们需要比较来自不同来源的两个表并从中选择最新的表
  • 我假设您将两个表连接在一起,只需要 linq 即可获取最新行。
  • 那是我现在在挣扎。 :)
  • 在以下网页上查看遗漏的加入。 code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b。 Lale 给你一个问题,左外连接将解决这个问题。
  • 你有一些关于这个日期验证的样本吗?
猜你喜欢
  • 1970-01-01
  • 2018-10-24
  • 2020-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-30
  • 1970-01-01
  • 2011-02-25
相关资源
最近更新 更多