2012-10-12 155 views
0

我正在處理顯示(突出顯示)某個事件發生日期的應用程序。 在我必須使用的數據庫中有一個表格,其中包含具有特殊含義的日期間隔或日期集合(如假期的收集,學校休息...)。當定義事件時,用戶定義事件發生在哪一天(如果定期發生),但用戶還可以定義該特定事件在特定時間間隔內是否發生。例如,如果那個日子不是假期,那麼每個星期天都會有一個事件發生。 現在,我已經通過從該數據庫中讀取該事件的數據(確定該事件發生在哪一天)並隨後填充將突出顯示日期的列表來解決期刊部分(對於圖形表示,我使用MotnhCalendar及其BoldedDates陣列):將數據從SQL數據庫加載到C#列表中

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#命令從數據庫中讀取數據並將其保存在列表中。

感謝

+0

「*我怎麼能,通過使用SQL和C#命令,從數據庫中讀取數據並將其保存在列表中*「 - 這完全取決於您用作後端的未指定的內容。 – James

+0

你是什麼意思後端 - 我使用Visual Studio 2010,並且數據庫位於我的客戶端擁有的遠程服務器上,我不確定他們使用哪個SQL服務器 – NDraskovic

+0

通過後端我的意思是持久層例如數據庫。您的選擇取決於它們正在運行的SQL服務器的版本,您可能希望找到它,因爲它非常重要。 – James

回答

1

,因爲它看起來你使用SQL Server 2008 R2我會建議使用ORM工具喜歡ADO.NET Entity Framework訪問數據庫一樣 - 使用最新版本EF 5最好的打算。

有大量的教程在線如何起來&與它一起運行 - 一個好的是Creating Model Classes with the Entity Framework

爲了給你如何簡單使它成爲一個想法,這裏是代碼的最小量,你將需要實現它是什麼的一個例子你希望做的:

using (var db = new MyDbContext()) 
{ 
    var specialDates = db.SpecialDatesTable.ToList(); 
} 
相關問題