2012-02-16 1 views
0

Я пытаюсь обработать результаты, чтобы изменить, как даты отображаются на каландере страницы ASP.NET. Я хочу, чтобы, если «Бронировка» была сделана в определенный день, она будет отображаться в календаре как красная клетка с высокой освещенностью. Проблема в том, что мне удается только однажды сделать это, и выделит одну ячейку, а затем не переместится на следующий «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 (reader.Read()) 
{ 
    //do your processing here to check the Calendar stuff 
} 
+0

Но тогда я получаю исключение MySQL. «Неверная попытка прочитать, когда читатель закрыт». – Mac

+0

Я должен видеть код, который вы используете. Если вы его закрываете, это может привести к тому, что .. вы можете вставить код, который вы используете, когда вы меняете его на цикл While ...? – MethodMan

+1

Чувак, что вы закрываете читателя, снова смотрите на свой код. String BookingDate = Reader.GetValue (0) .ToString(); Строковое имя пользователя = Reader.GetValue (1) .ToString(); String Client = Reader.GetValue (2) .ToString(); Reader.Close(); – MethodMan