2012-02-16 51 views
0

我正在嘗試處理結果以更改日期在ASP.NET頁面的calander上的顯示方式。我希望如此,如果在特定日期已經做了「預訂」,那麼它將在日曆上顯示爲紅色高點單元格。 問題是我只是設法讓它做一次,它突出顯示一個單元格,然後不會移動到下一個「BookingDate」。基於MySQL表中「預訂」的日期呈現日曆ASP.NET C#

這裏是代碼:

conn.Open(); 
      Reader = command.ExecuteReader(); 
      if (Reader.Read()) 
      { 
       String BookingDate = Reader.GetValue(0).ToString(); 
       String Username = Reader.GetValue(1).ToString(); 
       String Client = Reader.GetValue(2).ToString(); 
       Reader.Close(); 
       conn.Close(); 
       String[] bookingDetails = new String[3]; 
       bookingDetails[0] = BookingDate; 
       bookingDetails[1] = Username; 
       bookingDetails[2] = Client; 

       DateTime BookingDateShort = Convert.ToDateTime(BookingDate); 
       DateTime CalanderDate = Convert.ToDateTime(e.Day.Date); 

       for (int i = 0; i < GetDaysinMonth(); i++) 
       { 
        if (CalanderDate.ToShortDateString().Equals(BookingDateShort.ToShortDateString())) 
        { 
         e.Cell.BackColor = System.Drawing.Color.Red; 
         e.Cell.ToolTip = "Username: " + Username + " | Client: " + Client + ""; 
        } 
       } 
      } 

我知道我需要做一些類型的循環,使之遞歸去了這個處理每個日期,這對bookingdate比較覈對它們是否相等。但它只能用於一個預訂日期。

有沒有人看到我能如何解決這個問題?

非常感謝

回答

0

當你正在做你read..are你期待更多的結果,或只是一個..?那麼你需要改改你如果讀while循環

所以你的while循環將是這個樣子

while (reader.Read()) 
{ 
    //do your processing here to check the Calendar stuff 
} 
+0

但後來我得到一個MySQL的異常。 「閱讀器關閉時嘗試讀取無效。」 – Mac 2012-02-16 18:24:06

+0

我必須看到你正在使用的代碼..如果你正在關閉它,那會導致..你可以粘貼你使用的代碼,當你把它改變到While循環..? – MethodMan 2012-02-16 18:26:12

+1

Dude您正在關閉閱讀器再次查看您的代碼String BookingDate = Reader.GetValue(0).ToString(); String Username = Reader.GetValue(1).ToString(); String Client = Reader.GetValue(2).ToString(); Reader.Close(); – MethodMan 2012-02-16 18:28:50