在数据网格视图中显示最近的数据

时间:2016-07-11 11:21:15

标签: c# winforms

我正在开发Windows应用程序。

在该应用程序中,我将数据保存在数据库中。

在数据网格视图中检索数据。

为此,我使用以下代码:

var expenselist = db.SP_TodaysExpense().Where(a => a.Date <= DateTime.Now.Date).ToList();

DgvTodaysExpense.DataSource = expenselist;

上面的代码显示了数据库中的所有数据。但是,我想显示仅在打开应用程序后添加的数据。

那我怎么能这样做呢?

提前谢谢。

2 个答案:

答案 0 :(得分:2)

您需要在应用设置中保存日期时间值(右键单击Project =&gt; Propeties =&gt;设置):

注意:使用Scope =&gt;用户以便能够更新值。

然后在Program.cs主方法中添加:

Properties.Settings.Default.LastOpenedTime = DateTime.Now;
Properties.Settings.Default.Save();

并将您的查询更改为:

DateTime queryTime = Properties.Settings.Default.LastOpenedTime ;
var expenselist = db.SP_TodaysExpense().Where(a => a.Date >= queryTime ).ToList();

DgvTodaysExpense.DataSource = expenselist;

有关应用设置的更多信息:请阅读Here

答案 1 :(得分:2)

  

OP:我想显示仅在打开应用程序后添加的数据。

根据您的要求,您需要获得应用程序的开始时间。在设置中存储开始时间是没有意义的(虽然它可以工作)。还有更好的选择:

  • 选项1 - 使用StartTimeCurrent Process获取应用的启动时间:

    var start = System.Diagnostics.Process.GetCurrentProcess().StartTime;
    
  • 选项2 - 将StartTime存储在Program类的静态属性中:

    public static DateTime StartTime { get; private set; } /* Usage: Program.StartTime */
    [STAThread]
    static void Main()
    {
        StartTime = DateTime.Now; 
        //...
    }