2014-01-23 2 views
0

select 문을 3 번 데이터 집합에 사용하여 데이터베이스에서 3 개의 개별 결과를 선택합니다. 두 행을 추가하고 두 번째 행 아래에 전체 레이블을 삽입하고 그 행의 다음 셀에 결과를 추가합니다. 테이블 컬럼 values.My 코드에 기초 내림차순 순서 테이블C#에서 datatable의 목록을 정렬하는 방법?

List<DataTable> list_dt = new List<DataTable>(); 

for (int i = 0; i < ds.Tables.Count; i++) 
     { 
      score = TotalScore(ds.Tables[i]); 
      list_dt.Add(AddToDataTable(ds.Tables[i], score)); 
     } 

문제가 나는 시간에 기초하여 3 개 개의있는 GridViews에 결합되도록 얼마나 시간에 기초하여 테이블을 정렬하는 것을이다. 사용자는 SQL 명령을 변경하고 다음과 같이 : Click here for more info

방법 2 :

public DataTable AddToDataTable(DataTable dt, double totalScore) 
{ 
    var rowTotal = dt.NewRow(); 
    rowTotal["FullName"] = "Total"; 
    rowTotal["Hours"] = totalScore; 

    dt.Rows.Add(rowTotal); 

    return dt; 
} 

public double TotalScore(DataTable dt) 
{ 
    double Hours = 0.0; 


    for (int i = 0; i < dt.Rows.Count; i++) 
    { 
     Hours += Convert.ToDouble(dt.Rows[i]["Hours"]); 
    } 

    return Hours; 
} 

답변

-2

어쩌면 당신은 사전을 사용할 수 있습니다 선택 * 시간 순서와 시간에 의해

다른 방법이있다 2의 ArrayList를 만든 다음 플레이 2 배열의 인덱스

+0

당신은 실제로 영업을 도움이됩니다 방법을 보여 이들의에 자세히 설명 할 수 있습니까? 사전은 조회 용이며 주문을 유지하지 않습니다. –

0

DataTables를 정렬하는 대신 쿼리에 Order By을 사용하여 결과를 Hour descending으로 정렬 할 수 있습니다. Hou에 따라 항상 resul을 정렬하기 때문에 쉽고 간단합니다. 아르 자형.

+0

그가 3 개의 결과 세트를 얻었 기 때문에 이것은 작동하지 않을 것입니다;) –

+0

그는 "select 문을 세 번"데이터 집합에 사용하여 데이터베이스에서 3 개의 개별 결과를 선택합니다. '라고 말합니다. 그리고 문제는 '문제는 시간을 기준으로 테이블을 정렬하는 방법'입니다. – tarzanbappa

+0

아마도 내가 틀렸어. 그러나 질문은 "하나의 데이터 테이블이 하나의 결과 집합 인"데이터 테이블의 목록을 정렬하는 방법 "입니다. 또한 각 결과 집합의 시간 합계를 계산합니다. 그리고이 계산 된 값은 정렬에 사용되어야합니다. 안 그래요? –

1

총 가능한 시간을 기준으로 목록에서 테이블을 정렬 할 수있는 가능한 솔루션 중 하나를 사용할 수 있습니다.

var sortedTableList = (from table in list_dt 
    orderby Convert.ToDouble((from row in table.AsEnumerable() 
     where row.Field<string>("FullName") == "Total" 
     select row.Field<string>("Hours")) 
     .Single()) 
     /* place here the keyword "descending" for descending order */ 
    select table) 
    .ToList(); 

또는

// replace "OrderBy" with "OrderByDescending" for descending order 
var sortedTableList = list_dt.OrderBy(table => 
    Convert.ToDouble(
     (table.AsEnumerable() 
     .Where(row => row.Field<string>("FullName") == "Total") 
     .Select(row => row.Field<string>("Hours")) 
     .Single()))) 
    .ToList(); 
관련 문제