Привет, я пытаюсь сравнить 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 ответ
Я думаю, что формат, возвращаемый сервером sql, должен иметь формат DateTime. Когда вы сравниваете DateTime с CalendarDate, вы должны использовать CalendarDay.Date Property для сравнения дат. Так что вам следует сравнивать e.Day.Date со значением DateTime.Date, возвращаемым из базы данных. Ваша база данных должна возвращать свое значение в переменную DateTime, поэтому вы сравниваете DateTime с DateTime.
Похожие вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.