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);
    }
}             

我希望如果例如 Besezt_Von = 14:00 点,则仅在 30 分钟过去(14:30)时才执行查询。我用 if 子句做到了,但它不起作用。查询始终在执行。我在做什么错?

4

2 回答 2

6

改变

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

什么都不做(这意味着如果 v.Besetz_von < v.BesezVon + 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 回答