2011-02-13 61 views
0

我想列出所有尚未付清課程費用的學生 ,即單擊學生時,按月列出所有未決費用。linq選擇加入的問題

這就是我迄今爲止所做的...
這些都是學生的主動課程。

以下是學生付給他們課程的付款記錄。 enter image description here
現在我想列出所有未付款的在線學生 例如最後一次付款是在2011年2月11日。如果日期時間現在是五月,那麼我想展現的未付金額爲
月數額
月100
月200
月400

這是我試過..

foreach (var result in activeCourses) 
{ 
    //Show all the pending paid coures from dateJoin till datetime.Now 
    DateTime JoinedDate = Convert.ToDateTime(result.cus.Date); 
    for (DateTime d = JoinedDate; d.Month <= DateTime.Now.Month; d = d.AddMonths(1)) 
    { 
     Payment payment = new Payment(); 

     payment.Course.Id = result.c.Id; 
     payment.Course.Name = result.c.Name; 
     payment.Course.Fee = result.c.Fee; 
     payment.CourseByStudent.CourseUserStatus.Date = result.cu.Date; 
     payment.CourseByTutor.TutorId = result.t.TutorId; 
     payment.User.Name = result.u.Name; 

     payment.MonthId = d.Month; 
     payment.MonthToPay = d.ToString("MMM"); 
     output.Add(payment); 
    } 
} 


上面給出的邏輯在學生沒有爲他的課程支付任何費用的情況下似乎沒有效率,那麼我必須檢查自他第一次加入日期以來的待處理付款。 OtherWise我需要根據該特定的過程檢查付款表中DateIssue的待定付款。請通知我們謝謝

+0

好,我想我會繼續做對(DateTime的d使用回上述方法= lastPaidDate.AddMonths(1); d.Month <= DateTime.Now.Month; d = d.AddMonths(1))。不管怎麼說,還是要謝謝你。 – VeecoTech 2011-02-14 07:49:23

回答

0

我將使用相同的方法來顯示延遲付款。

for (DateTime d = lastPaidDate.AddMonths(1); d.Month <= DateTime.Now.Month; d = d.AddMonths(1)) 

由於