基于MySQL表格中的“预订”的日渲染日历ASP.NET C#

时间:2012-02-16 18:05:10

标签: c# asp.net mysql calendar datareader

我正在尝试处理结果以更改日期在ASP.NET页面的压缩程序上的显示方式。我想要它,以便如果在特定日期进行“预订”,那么它将在日历上显示为红色高亮度单元格。 问题是我只能设法让它做一次,它会突出显示一个单元格,然后不会移动到下一个“BookingDate”。

以下是代码:

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 + "";
                    }
                }
            }

我知道我需要做一些循环,让它递归地遍历每个日期的处理,将它与预订日期进行比较并检查它们是否相等。但是它仅在一个预订日期进行。

有没有人知道如何解决这个问题?

非常感谢

1 个答案:

答案 0 :(得分:0)

当你正在阅读时......你期待更多的结果或只是一个......?是这样你需要改变你的if读取更改为While循环

所以你的while循环看起来像这样

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