我有以下代码:
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子句做了,但它不起作用。 Query始终在执行。我做错了什么?
答案 0 :(得分:6)
变化
if (TimeCheck.AddMinutes(30) > v.Besetzt_Von)
它没有做任何事情(这意味着如果v.Besetz_von< v.BesetzVon + 30分钟,这当然总是正确的)
到
if (DateTime.Now > v.Besezt_Von.AddMinutes(30))
答案 1 :(得分:1)
// DateTime TimeCheck = v.Besetzt_Von; <-- you don't need this
if (DateTime.Now > v.Besetzt_Von.AddMinutes(30))
{
// ...
}