2016-07-11 7 views
2

Ich arbeite an Windows-Anwendung.zeigen aktuelle Daten in der Datenrasteransicht

In dieser Anwendung speichere ich Daten in der Datenbank.

Und Daten in der Datenrasteransicht abrufen.

Dafür habe ich folgenden Code verwende:

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

DgvTodaysExpense.DataSource = expenselist; 

obige Code zeigt alle Daten in der Datenbank. Aber ich möchte Daten anzeigen, die erst nach dem Öffnen der Anwendung hinzugefügt werden.

Also wie kann ich das tun?

Vielen Dank im Voraus.

+1

Speichern Sie das aktuelle Datum und die Uhrzeit, wenn Sie diese Anwendung öffnen und verwenden Sie das Ersetzen der tatsächlichen DateTime.Now.Date – Steve

+0

Ich werde versuchen ... Danke @Steve –

+0

'System.Diagnostics.Process.GetCurrentProcess(). StartTime' ist was du suchst nach. –

Antwort

2

Sie benötigen einen Datetime-Wert in den App-Einstellungen speichern (Rechte auf Projekt => propeties => Einstellungen):

Hinweis: Verwenden Sie Scope => User um in der Lage zu sein, den Wert zu aktualisieren.

Dann in Program.cs Main-Methode hinzu:

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

und Ihre Suche verfeinern:

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

DgvTodaysExpense.DataSource = expenselist; 

Weitere Informationen über die App Einstellungen: Lesen Here

+1

Hier zeigt Abfragezeit "01-01-0001 00:00:00" und meine Abfrage gibt nichts zurück. –

+0

@sweets Es kann nicht '01-01-0001 00: 00: 00' sein, wenn Sie es in' Program.cs' auf DateTime.Now setzen; – user3185569

+1

Es funktionierte..danke @ user3185569 –

2

OP : Ich möchte Daten anzeigen, die erst nach dem Öffnen der Anwendung hinzugefügt werden ication.

Basierend auf Ihrer Anforderung müssen Sie die Startzeit Ihrer Anwendung abrufen. Startzeit in Einstellungen zu speichern ist sinnlos (während es funktioniert). Darüber hinaus gibt es bessere Optionen:

  • Option 1- Get Zeit der Anwendung starten mit StartTime von Current Process:

    var start = System.Diagnostics.Process.GetCurrentProcess().StartTime; 
    
  • Option 2- Shop Starttime in einer statischen Eigenschaft Program Klasse:

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

Ich habe das vermisst. Up-Stimme für dich. – user3185569

+0

Danke für das Feedback :) –

Verwandte Themen