2011-01-18 13 views
1

2つのデータローを追加して、同じデータテーブルの3番目のデータローに結果を得ることは可能ですか? また、2つのデータローを結果行にバインドして、値が変更された場合に結果の行に反映されるようにすることは可能ですか? DataTableで使用するための応答を編集事前3行目に2つのデータローを追加する

+0

私はあなたの質問を完全に理解していません。 3行目に2行(各列のように)の結果を表示しますか? –

+0

はい。 3番目の行には、それぞれの列に上記の2つの行の値の合計が含まれている必要があります。個々の行と列のインデックスを使用せずにそれを行う方法があるかどうかを知りたい。 – 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

答えをありがとう、しかし私が構築しているのは、どのタイプのUIにもバインドできるように、出力としてデータテーブルを持つツールです。ですから、私はデータテーブル自体でバインディングを行いたいと思います。出来ますか? – CMS

+0

ああ、はい、データテーブル/データセットに行を追加することは可能です。編集のためのコードブロックを追加します。 – Mantisen

+0

私の質問ははっきりしないと思います。私が望むのは、2つのデータローを追加することです。つまり、 'A'がデータ行で、 'B'が別のデータ行であれば、C = A + Bを得ることができます。表。そして、 'A'と 'B'はテーブル内の唯一の行ではありません。多くの行があり、 'A'と 'B'はインデックスが分かっている2つの選択された行です。 'C'の場合も、インデックスのみがわかります。私は 'A'と 'B'の値を(対応する列の) 'C'に追加したいと思います。同じテーブルのすべてのデータローも同じスキーマを持ちます。また、私は列の名前、インデックスだけを知りません。 – CMS

関連する問題