2016-04-27 5 views
2

Ich habe eine Variable, die sich zwischen einem Tag, einer Woche und einem Monat unterscheidet. Ein Formular übernimmt dies und sendet es an den Controller zurück. Ich versuche jedoch, die "Bestellungen innerhalb einer Woche anzeigen" mit dieser Methode unten zu funktionieren. Keine Fehler, es zeigt nur keine Bestellungen an.C# Vergleichen OrderDate mit Variable

Controller; (Just trying to get it to work before i change the amount of days) 
else if (date == "day") 
      { 
       DateTime today = DateTime.Now; 
       DateTime answer = today.AddDays(10); 

       return View(db.Orders.Where(x => x.OrderDate <= answer).ToList()); 
      } 

Dies ist meine Ansicht, einschließlich anderer Teile, die ich verwende;

@using (Html.BeginForm("Index", "EditOrders", FormMethod.Get)) 
{ 
    //the following are search options 

    <b> Search for: </b>@Html.RadioButton("option", "FirstName") <text>First Name</text> @Html.RadioButton("option", "PostalCode") <text> Post-Code </text> 
    @Html.RadioButton("option", "Username")<text>Email-Address</text> @Html.TextBox("search") 
    <text>Orders Made </text><select id="date" name="date"> 
     <option value="none">No day</option> 
     <option value="day">In the last day</option> 
     <option value="week">In the last week</option> 
     <option value="month">In the last month</option> 
     <option value="year">In the last year</option> 
    </select> 
    <input type="submit" name="submit" value="Search" /> 
} 
+0

Um zu bestätigen, (wohl offensichtlich) aussehen - was der Typ ist von Bestelldatum in db.Orders. Um zu bestätigen, fragen Sie nach einer ** Woche **, aber nach ** == "Tag" ** suchen und dann 10 Tage hinzufügen - ist das ein Tippfehler in der Frage oder überprüft Ihr Code zweimal auf den Tag und nicht Woche? –

+0

Werfen Sie einen Blick auf diese Antwort und geben Sie das generierte sql aus - damit Sie das Problem finden können: http://stackoverflow.com/questions/3920990/best-way-to-show-the-sql-trace-of- a-linq-query-to-entity-framework-3-5 –

+0

@ freedomn-m ist eine DateTime, ja nur für Testzwecke, wenn ich es für 10 Tage überprüfen kann, kann ich es bekommen, um zu überprüfen. Im Code setzt er heute und fügt dann die Tage bis heute hinzu. Ich brauche es, um Orders anzuzeigen, in denen OrderDate zwischen "Heute" und "Antwort" liegt. –

Antwort

0

Mein Code korrekt ist und funktioniert jetzt, Alles, was ich tun musste, war eine hinzufügen - die Tage in der Vergangenheit

DateTime today = DateTime.Now; 
       DateTime answer = today.AddDays(-10);