2014-09-30 27 views
0

我有一個日曆控件,當選擇一個日期時,它會顯示一個表格,其中包含與數據庫中該日期相關的事件。 Event表具有重複列。如果重複對於某個事件是肯定的,那麼每天都應該顯示該事件。如何爲日曆製作重複事件?

Ex。

Event_id Event Start Event End Repeat Days    Date 
2   15:00:00 17:00:00 yes  Monday:Wednesday 10/11/2014 12:00:00 AM 

這應該顯示每個星期一和星期三從15:00到17:00。 Date是第一天開始。

這是我試過的,但它只適用於一天。

while (reader.Read()) { 
    int event_id = reader.GetInt32(0); 
    TimeSpan eventStart = reader.GetTimeSpan(2); 
    TimeSpan eventEnd = reader.GetTimeSpan(3); 
    int repeat = reader.GetInt32(4); 
    string days = reader.GetString(5); 
    DateTime theDate = reader.GetDateTime(7); 

    //Printing the table. 
    htmlStr += "<tr><td>" + event_id + "</td><td>" + eventStart + "</td><td>" + eventEnd + "</td><td>" + repeat + "</td><td>" + days + "</td><td>" + theDate + "</td></tr>"; 
} 
+1

如果您的問題是「我如何在C#中實現日曆事件重現?」,那麼對於堆棧溢出來說這太寬泛了。圖書館的建議也是偏離主題,但我建議使用像[DDay.iCal](http://sourceforge.net/projects/dday-ical/)這樣的庫來計算經常性事件。 – CodeCaster 2014-09-30 14:37:50

+0

如果你的數據庫中有一個字符串,你怎樣才能讓變量'repeat'作爲'int'? – DatRid 2014-09-30 14:42:23

+0

這只是一個錯字。它通常是0或1的整數,我最後一分鐘改變了,但忘了改變兩者。 – User765876 2014-09-30 14:44:16

回答

0

這是一個簡單的方法,可能不是最好的,但這不需要其他庫。

從數據庫中取出所有事件[重複(只有是),日期,日期]並放入集合中。然後獲得selectedDate並查看Date是否在之前或之後,如果是,則檢查selectedDate是否與Days相同,如果是,則還打印該集合。

相關問題