2012-06-18 129 views
0

我有一個aspx文檔,它以HTML表格的形式從數據庫返回傳入航班列表。它顯示當天的所有航班。生成行的部分是:從特定時間段獲取數據

string fechha = dias + "/" + mess + "/" + años; 
    string fecVuel = fechha; 

    for (int i = 0; i <= num - 1; i++) 
    { 
     string hora = xl.ChildNodes[0].ChildNodes[i].ChildNodes[5].InnerText; 
     fecVuel = xl.ChildNodes[0].ChildNodes[i].ChildNodes[0].InnerText; 
     if (fecVuel == fechha) 
     { 
      fila = new TableRow(); 

我想什麼是有它只能獲得匹配特定的時間段,像以前一樣和當前時間2小時後,該航班。在代碼中,string hora的值是從數據庫中檢索的時間。

我嘗試添加當前時間變量與rightnow = DateTime.Now.Hour;和增加一個條件,如:

if (fecVuel == fecha && ((hora >= rightnow - 2) || (hora <= rightnow + 2))) {... 

但它仍然產生整個表。我甚至嘗試將其更改爲fecVuel != fecha,但它沒有改變:S我對asp不太滿意,我使用Notepad ++進行編輯。有任何想法嗎?謝謝你的時間。

+0

謝謝,我一直忘記他們不一樣。這對我來說是一種新語言。 –

+0

另外,不要在for循環中執行'i <= num-1'。這是一個不必要的操作,只要'我 JamieSee

回答

0

比方說,現在,它是14:00

兩個小時前,它是12:00。在兩個小時內將是16:00。

現在(14:00)將始終滿足的兩個條件之一:比12:00或小於16:00大

如果將OR更改爲AND,則必須滿足這兩個條件。

if (fecVuel == fecha && ((hora >= rightnow - 2) && (hora <= rightnow + 2))) 

如果您使用AND,則只選擇14:00至16:00之間的時間(不包括那些時間)。

+0

謝謝!我會馬上編碼(我知道它必須是簡單可笑的東西!) –

+0

是的,但我似乎無法登上。我是一個noover在stackoverflow :) –

0

表中的一切都會符合你的說法,因爲這是什麼說: if (fecVuel == fecha && ((rightnow - 2 <= hora) || (hora <= rightnow + 2))) {...

它說什麼(rightnow - 2 <= hora) OR (hora <= rightnow + 2) ---而一切都將等於一個或其他條款的,無論是目標時間前18小時或目標時間後99小時。

你需要的是:((rightnow - 2) <= hora) && (hora <= (rightnow + 2))

因此,改變你的||&&,你應該得到你之後的結果。