2

私は次のコードを持っています:

if (v != null && DateTime.Now > v.Besetzt_Von)
{

    Debug.WriteLine("Hallo, das ist die Ausgabe! : " + v.Thema + v.Besetzt_Von + v.Besetzt_Bis);
    string clientId = GetClientId(req);

    DateTime TimeCheck = v.Besetzt_Von;

    if (TimeCheck.AddMinutes(30) > v.Besetzt_Von)
    {
        String hql = "UPDATE Buchung as b " +
        "set STORNO = :Storno " +
        "where ID IN (SELECT rr.Buchung FROM Raumreservierung rr " +
        "where BESETZT_VON = :Von and Raum IN (SELECT r.ID FROM Raum r " +
        "join r.Panel pl where pl.ID = :PanelId))";


        IQuery query = CurrentSession.CreateQuery(hql);
        query.SetParameter("Storno", DateTime.Now);
        query.SetParameter("Von", v.Besetzt_Von);
        query.SetParameter("PanelId", clientId);
        int result = query.ExecuteUpdate();
        Debug.WriteLine("Rows affected: " + result);
    }
}             

たとえば、Besetzt_Von = 14:00 の場合、クエリは 30 分経過した場合 (14:30) にのみ実行されます。if 句でそれを行いましたが、機能しません。クエリは常に実行されています。何が間違っているのですか?

4

2 に答える 2

6

変化する

if (TimeCheck.AddMinutes(30) > v.Besetzt_Von)

これは何もしません(これは、v.Be​​setz_von <v.BesetzVon + 30分である場合を意味します。もちろん、これは常に当てはまります)

if (DateTime.Now > v.Besezt_Von.AddMinutes(30))
于 2012-09-04T08:54:03.470 に答える
1
// DateTime TimeCheck = v.Besetzt_Von; <-- you don't need this

if (DateTime.Now > v.Besetzt_Von.AddMinutes(30))
{
    // ...
}
于 2012-09-04T08:53:59.620 に答える