无法将类型'diaryEntry'转换为system.datetime

时间:2013-02-23 19:39:06

标签: asp.net datetime

在我的diaryEntry标签中; e我有id,siteId和日期。我通过了一个约会,我希望列表'DiaryEntry'存储所有匹配的日期。然后我通过foreach传递此列表,然后在日历上突出显示屏幕上的日期。

 DateTime tempDate = System.Convert.ToDateTime(Session["Diary_Date"]);
        DateTime startOfMonth = new DateTime(tempDate.Year, tempDate.Month, 1);
        DateTime endOfMonth = startOfMonth.AddMonths(1).AddDays(-1);
    List<Diary_Entry> DiaryEntry = new List<Diary_Entry>();

        DiaryEntry = (from DE in db.Diary_Entries
                      where DE.Site_Id == 1
                      && DE.Date >= startOfMonth && DE.Date <= endOfMonth
                      select DE).ToList();


  foreach (DateTime d in DiaryEntry)//list is name of list you use avoue(in linq)
        {
            Calendar1.SelectedDates.Add(d);//CALENDAR 1 IS WHAT I CALLED IT IN ASPX
        }

错误:无法将类型'diaryEntry'转换为system.datetim

有人可能会建议我如何解决这个问题

3 个答案:

答案 0 :(得分:1)

问题在于:

foreach (DateTime d in DiaryEntry)

DiaryEntryList<Diary_Entry>,而不是DateTime的列表。

更改为:

foreach (Diary_Entry d in DiaryEntry)

现在,对于每个d,您都可以访问其DateTime成员。

答案 1 :(得分:1)

  foreach (var d in DiaryEntry)
        {
            Calendar1.SelectedDates.Add(d.Date); //assuming d.Date is a datetime
        }

答案 2 :(得分:1)

你的问题是你有Diary_Entry的列表,而不是DateTime,所以如果你想迭代可枚举的datetime,你应该得到它。您可以使用linq执行此操作:

    foreach (DateTime d in DiaryEntry.Select(de=>de.Date))
    {
        Calendar1.SelectedDates.Add(d);//CALENDAR 1 IS WHAT I CALLED IT IN ASPX
    }