C# 存储上次应用程序运行的日期/时间

C# 存储上次应用程序运行的日期/时间,c#,variables,console-application,C#,Variables,Console Application,目前我正在使用一个控制台应用程序C。它所做的是从数据库中提取文件,并将其存储在本地计算机上C驱动器上的相关文件夹中 目前,每次我运行console应用程序时,它都会从数据库中提取所有文件 我希望能够做到的是,每次我运行它时,它只提取自上次运行控制台应用程序以来提交的文件。目前,这是从数据库中提取文件的linq语句 var titleObjects = ctn.Titles.Where(t => !t.Deleted && t.SubmissionState == 2 &am

目前我正在使用一个控制台应用程序C。它所做的是从数据库中提取文件,并将其存储在本地计算机上C驱动器上的相关文件夹中

目前,每次我运行console应用程序时,它都会从数据库中提取所有文件

我希望能够做到的是,每次我运行它时,它只提取自上次运行控制台应用程序以来提交的文件。目前,这是从数据库中提取文件的linq语句

var titleObjects = ctn.Titles.Where(t => !t.Deleted && t.SubmissionState == 2 &&(t.Approved.HasValue && t.Approved.Value)).Select(t => t);
理想情况下,我希望类似于以下内容,其中应用程序最后一次运行的日期和时间存储在某个位置:

var titleObjects = ctn.Titles.Where(t => !t.Deleted && t.SubmissionState == 2 && t.CreatedDate >= LastAppRun && t.CreatedDate <= DateTime.Now  && (t.Approved.HasValue && t.Approved.Value)).Select(t => t);

我不确定如何实现这一目标。如果有人对此有任何建议,我将非常感谢:

为什么不在数据库中创建一个表并插入一个包含上次运行时间的记录呢。然后更新在每次运行时从记录中检索值,并在完成时更新它


或者,您可以为每次跑步插入一条记录,以跟踪跑步发生的时间,并选择每次跑步的最长日期时间记录,以确定上次跑步的时间。

您可以使用app.settings进行此操作。创建一个值并将其值设置为

Properties.Settings.Default.lastRunTime = DateTime.Now;
Properties.Settings.Default.Save();
无论是否使用数据库,使用应用程序都要容易得多


您还可以加密设置。谷歌加密。

如果你的数据库有几个控制台客户端怎么办?看起来LastAppRun的存储是一项客户端任务

您可以将LastAppRun序列化为一个文件,并将其存储在IsolatedStorageFile中


另一个更难看的选择是使用注册表项。

当应用程序启动时,获取当前日期/时间,并处理上一个日期/时间和当前日期/时间之间的消息。在应用程序退出之前,让它将当前时间保存为最后一次,例如,将时间格式化为YYYYMMDDHHMMSS并保存到文件中。你不确定哪一部分?@Jon,说实话,我只是不确定什么是最好的方法。目前,我还没有把它包括在上面,我有一个应用程序设置为询问用户的“到”和“从”日期,但我只希望它的工作更无缝一点。我只是不知道如何在不使用数据库的情况下在应用程序中保存最后的日期/时间,或者是否可能。我可以想到的选项:1。您自己的文件位于您选择的磁盘位置。2.系统配置3。System.IO.IsolatedStorage 4。登记处5。数据库本身。嗨@andynormax。。是的,我确实想过这样做,我只是想听听其他的意见,看看什么是最好的方法。感谢您的回复:您唯一的其他选择是将值本地存储在文件或注册表中。不过数据库似乎是最好的地方。我想你是对的。记录应用程序运行的时间可能会更好。谢谢:数据库解决方案可以轻松处理多个客户机。有一列包含每个客户端的标识符,并将每个客户端的标识符存储在app中。configHi Sergey,console应用程序将仅由一个人使用,因此多个console客户端没有问题。