Как я могу сравнить SQLdate и CalendarDay - PullRequest
0 голосов
/ 13 апреля 2011

Привет. Я пытаюсь сравнить Sqldate с CalendarDay, и если дата совпадает, я изменяю цвет календаря bg

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();
    }
}

1 Ответ

0 голосов
/ 13 апреля 2011

Формат, возвращаемый сервером sql, я думаю, должен иметь формат DateTime. Когда вы сравниваете DateTime с CalendarDate, вы должны использовать свойство CalendarDay.Date для сравнения дат. Так что вам следует сравнить e.Day.Date со значением DateTime.Date, возвращаемым из базы данных. Ваша база данных должна вернуть свое значение в переменную DateTime, поэтому вы сравниваете DateTime с DateTime.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...