2011-04-12 31 views
0

嗨,我试图用CalendarDay如果日期匹配,我改变日历我怎么能比较SQLdate和CalendarDay

private void Calendar1_DayRender(Object source, DayRenderEventArgs e) 
{ 
    CalendarDay de = null; 

    int i = 0, j = 0; 
    using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["MYDB"].ToString())) 
    { 
     conn.Open(); 
     using (SqlCommand cmd = new SqlCommand()) 
     { 
      cmd.Connection = conn; 
      cmd.CommandType = CommandType.Text; 
      cmd.Parameters.Add(new SqlParameter("@Today", SqlDbType.Date)); 
      cmd.Parameters["@Today"].Value = e.Day.Date.; 
      cmd.CommandText = " Select Date from tour where date >= @Today"; 

      SqlDataReader sr = cmd.ExecuteReader(); 
      de = (CalendarDay) sr.GetValue(0); 

      while (sr.NextResult()) 
      { 
       if (e.Day.Equals(de)) 
       { 
        e.Cell.BackColor = System.Drawing.Color.Yellow; 
       } 
       i++; 
       de = (CalendarDay)sr.GetValue(i); 
      } 
      sr.Close(); 
      sr.Dispose(); 
     } 
     conn.Close(); 
    } 
} 

回答

0

我认为应该是由SQL Server返回的格式的背景颜色比较Sqldate日期时间格式。将DateTime与CalendarDate比较时,应该使用CalendarDay.Date Property属性比较日期。因此,您应该将e.Day.Date与从数据库返回的DateTime.Date值进行比较。您的数据库应该将其值返回到DateTime变量中,以便将DateTime与DateTime进行比较。

相关问题