2011-02-13 2 views
0

아직 수강료를 지불하지 않은 모든 학생을 나열하고 싶습니다. 즉, 학생이 클릭되었을 때 모든 수령료를 몇 달씩 나열하십시오.linq select에 관한 질문

이것은 내가 지금까지 해왔 던 것입니다.
이들은 모두 학생들의 적극적인 수업입니다.

다음은 학생이 수업에 지불 한 지불 기록입니다. enter image description here
이제 보류중인 모든 지불 foreach 학생 예 : 마지막 지급액은 2011 년 2 월 11 일입니다. 날짜 시간이 지금 일을하는 경우, 그리고 내가
월의 양에
월 100
4월 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); 
    } 
} 
으로 보류중인 양을 보여 드리고자합니다


위의 논리는 학생이 자신의 코스에 대해 비용을 지불하지 않을 경우 효율적이지 않은 것 같습니다. 그런 다음 첫 JoinedDate 이후 보류중인 지불액을 확인해야합니다. OtherWise 그 특정 코스에 따라 지불 테이블에 DateIssue에서 보류 지불을 확인해야합니다. 충고 감사

+0

얘, 난 (날짜 시간 (D)에 대해 수행하여 상기 방법을 다시 계속 사용할 생각 = lastPaidDate.AddMonths (1) d.Month <= DateTime.Now.Month; D = d.AddMonths (1)). 어쨌든 고마워. – VeecoTech

답변

0

나는 늦은 지불을 보여주는 동일한 접근 방식을 사용합니다.

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

감사