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

时间:2010-11-25 14:04:28

标签: c# variables console-application

我正在使用控制台应用程序(C#)。它的作用是从数据库中提取文件并将它们存储在本地计算机上的C驱动器上的相关文件夹中。

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

我希望能够做的是,每次运行它时,它只会提取自上次运行控制台应用程序以来提交的文件。目前,这是从数据库中提取文件的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);

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

3 个答案:

答案 0 :(得分:5)

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

更容易一些
Properties.Settings.Default.lastRunTime = DateTime.Now;
Properties.Settings.Default.Save();

使用带或不带数据库的应用程序

时要容易得多

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

答案 1 :(得分:2)

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

或者您可以为每次运行插入一条记录,以便跟踪运行的时间,并选择每次运行时具有最大日期时间的记录,以便在上次运行时计算出来。

答案 2 :(得分:0)

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

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

其他(更难看的)选项是获取注册表项。