0

我正在开发一个显示(突出显示)某个事件将发生的日期的应用程序。在我必须使用的数据库中,有一个表包含日期间隔或具有特殊含义的日期集合(如假期集合、学校假期......)。定义事件时,用户定义该事件在哪一天发生(如果它定期发生),但用户也可以定义该特定事件在特殊间隔发生或不发生。例如 - 如果那几天不是假期,那么每个星期天都会发生一个事件。现在我'

for (DateTime day = start; day < end;day = day.AddDays(1))
{
    if (Sunday && day.DayOfWeek == DayOfWeek.Sunday)
    {
        MarkedDates.Add(day);
    }
    monthCalendar1.BoldedDates = MarkedDates.ToArray();
}

现在,为了让这段代码正常工作,我需要跳过属于特殊间隔的日期(在这种情况下,如果该日期是假期)。可以通过在 if 子句中添加另一个条件来轻松完成:

!SpecialDates.Contains(day)

问题是我不知道如何用数据库中的这些特殊日期填充列表。我不能简单地“硬编码”它,因为这些特殊的日期集合/间隔可以随时更改。所以,我的问题是 - 我怎样才能通过使用 SQL 和 C# 命令从数据库中读取数据并将其保存在列表中。

谢谢

4

1 回答 1

1

看起来您使用的是 SQL Server 2008 R2,我建议您使用ADO.NET Entity Framework之类的 ORM 工具来访问您的数据库——最好使用最新版本的EF 5

网上有大量关于如何启动和运行它的教程——一个很好的教程是使用实体框架创建模型类

为了让您了解它的简单程度,这里有一个示例,说明您实现所需的最少代码量:

using (var db = new MyDbContext())
{
    var specialDates = db.SpecialDatesTable.ToList();
}
于 2012-10-12T10:04:33.753 回答