2013-02-08 4 views
0

잘 작동하는 기존 코드가 있으며 데이터 테이블의 데이터 열의 최대 값을 찾습니다. 이제 저는 이것을 수정하여 엠프 당 최대 값을 찾고 싶습니다. 어떤 변경이 필요합니까? 나는 LINQ를 사용하고 싶지 않다.그룹화하여 DataTable 행의 MAx 값 찾기

저는 지금 이것을 사용하고 있습니다 : memberSelectedTiers.Select ("Insert_Date = MAX (Insert_Date)") 그리고 이것을 Empid로 묶어야합니다.

내 코드는 다음과 같습니다.

 DataTable memberApprovedTiers = GetSupplierAssignedTiersAsTable(this.Customer_ID, this.Contract_ID); 

     //get row with maximum Insert_Date in memberSelectedTiers 
     DataRow msRow = null; 
     if (memberSelectedTiers != null && memberSelectedTiers.Rows != null && memberSelectedTiers.Rows.Count > 0) 
     { 
      DataRow[] msRows = memberSelectedTiers.Select("Insert_Date = MAX(Insert_Date)"); 
      if (msRows != null && msRows.Length > 0) 
      { 
       msRow = msRows[0]; 
      } 
     } 

답변

1

이렇게하려면 LINQ를 사용할 수 있습니다.

var grouped = memberSelectedTiers.AsEnumerable() 
           .GroupBy(r => r.Field<int>("EmpId")) 
           .Select(grp => 
            new { 
             EmpId = grp.Key 
             , MaxDate = grp.Max(e => e.Field<DateTime>("Insert_Date")) 
            }); 
0

다니엘 켈리가, 당신의 대답은 나를 도와 그 위대한, 그러나 당신은 OP 그는 LINQ를 사용하지 않은 진술 통지 않은 : 나는 다음과 같은 작업 (VS 테스트 할 필요가 없습니다) 생각?

+0

이 질문에 대한 답변을 제공하지 않습니다. 충분한 [평판] (https://stackoverflow.com/help/whats-reputation)이 있으면 [모든 게시물에 주석 달기] (https://stackoverflow.com/help/privileges/comment) 할 수 있습니다. 대신, [질문자의 설명이 필요없는 답변을 제공하십시오] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do- 대신). –