2011-01-18 5 views
1

두 개의 datarows를 추가하고 C#에서 같은 datatable의 세 번째 datarow에 결과를 얻을 수 있습니까? 또한 두 개의 데이터row를 결과 행에 바인딩하여 값이 변경되면 결과 행에 반영되도록 할 수 있습니까? 사전에세 번째 행에 두 개의 datarows 추가

감사 DataTable에 사용

+0

질문을 완전히 이해하지 못했습니다. 3 행에 2 행 (각 열에 숫자 합계와 같은)의 결과를 표시 하시겠습니까? –

+0

예. 세 번째 행은 각 열에 위의 두 행 값의 합계를 포함해야합니다. 개별 행 및 열 인덱스를 사용하지 않고이를 수행 할 수있는 방법이 있는지 알고 싶습니다. – CMS

+0

또한 데이터 테이블에서 데이터 바인딩을 수행 할 수 있습니까? – CMS

답변

0

편집 응답은 다시이 코드는 그냥 쓴 테스트하지 않았습니다.

public static class DataTableHandler 
    { 
     private const string COL_PRICE = "PriceColumn"; 
     private const string COL_QUANTITY = "QuantityColumn"; 

     public static DataTable AddTotalRow(DataTable dataTable) 
     { 
      int totalQuantity = 0; 
      decimal totalPrice = 0.0; 

      CalculateTotals(dataTable, out totalQuantity, out totalPrice); 

      DataRow row = dataTable.AddRow(); 
      row.Cells[COL_QUANTITY].Value = totalQuantity; 
      row.Cells[COL_PRICE].Value = totalPrice; 

      dataTable.Rows.Add(row); 
      return dataTable; 
     } 

     private static void CalculateTotals(DataTable dataTable, out int totalQuantity, out decimal totalPrice) 
     { 
      totalPrice = 0.0; 
      totalQuantity = 0; 

      foreach (DataRow r in dataTable.Rows) 
      { 
       totalPrice += (decimal)r.Cells[COL_PRICE].Value; 
       totalQuantity += (int)r.Cells[COL_QUANTITY].Value; 
      } 
     } 
    } 
+0

해답을 주셔서 감사하지만 건물은 UIable의 모든 유형에 바인딩 될 수 있도록 출력으로 데이터 테이블이있는 도구입니다. 그래서 datatable 자체에서 바인딩을하고 싶습니다. 가능한가? – CMS

+0

아, 네, datatable/dataset에 행을 추가 할 수 있습니다. 편집을 위해 코드 블록을 추가합니다. – Mantisen

+0

제 질문은 분명하지 않다고 생각합니다. 내가 원하는 것은 'A'가 데이터 행이고 'B'가 다른 데이터 행인 경우 두 개의 datarows를 추가하는 것입니다. C = A + B를 얻을 수 있습니까? 'C'또한 이미 존재하는 데이터 행입니다. 표. 그리고 'A'와 'B'는 테이블의 유일한 행이 아닙니다. 많은 행이 있고 'A'와 'B'는 인덱스가 알려진 두 개의 선택된 행입니다. 'C'에 대해서도 색인 만이 알려져 있습니다. 나는 'A'와 'B'의 값을 'C'에 추가하고 싶다. 동일한 테이블의 모든 데이터row도 동일한 스키마를가집니다. 또한 열 이름, 색인 만 알지 못합니다. – CMS

관련 문제