2014-03-07 5 views
2

DataTable을 정렬 한 후에도 특정 행을 마지막 행으로 반환하고 싶지만 정렬해야하는 DataTable이 있습니다. partiucular 열의 문자열 값으로이 행을 식별합니다.DataTable에서 행 위치 변경 또는 DataTable에서 행 이동

public DataTable StandardReport3B(string missionId, string reportType, string startDate, string endDate) 
    { 
     List<long> missionIdList = new List<long>(); 
     string[] missionIds = missionId.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); 

     foreach (string mission in missionIds) 
     { 
      missionIdList.Add(Convert.ToInt64(mission)); 
     } 

     DataTable dt = new DataTable(); 
     object reportData = null; 

     using (var ctx = new MedicalServiceEntities()) 
     { 
      reportData = ctx.GetData(startDate, endDate, missionId).ToList(); 
     } 

     dt = this.GenericListToDataTable(reportData); 

     DataView dv = dt.DefaultView; 
     dv.Sort = dt.Columns[0].ColumnName + " Asc"; 
     return dv.ToTable(); 
    } 

답변

3

당신은 LINQ-to-DataSet를 사용할 수 있습니다

비교가 true 또는 falsefalse 중 하나가 "낮은"입니다 반환하기 때문에 작동
dt = dt.AsEnumerable() 
    .OrderBy(r => r.Field<string>(0) == "Special Value") 
    .ThenBy(r => r.Field<string>(0)) 
    .CopyToDataTable(); 

.

+0

슈퍼 쿨 ............... – StackTrace

+0

감사합니다 @ 시간 내 두 시간을 절약 – Devjosh

0

나는이 행을 partiucular 열의 문자열 값으로 식별합니다.

무엇에 대해 :

"ParticularColumn는"당신이 마지막으로 원하는 것을 제외한 모든 행에 대해 동일한 낮은 값을 가진 열입니다
dv.Sort = "ParticularColumn ASC, " + dt.Columns[0].ColumnName + " ASC"> 

-이 행은 더 높은 값을 갖는다.

관련 문제