質問するログイン新規登録

回答編集履歴

1

追記&訂正

2021/02/05 04:32

投稿

退会済みユーザー
answer CHANGED
@@ -43,8 +43,8 @@
43
43
  {
44
44
  total += (decimal)value;
45
45
  }
46
- row["total"] = total;
47
46
  }
47
+ row["total"] = total;
48
48
  }
49
49
 
50
50
  this.bindingSource1.DataSource = table;
@@ -83,4 +83,35 @@
83
83
 
84
84
  **結果:**
85
85
 
86
- ![イメージ説明](b922a6e34208b99ba64cdd972cf30aab.jpeg)
86
+ ![イメージ説明](b922a6e34208b99ba64cdd972cf30aab.jpeg)
87
+
88
+ **【訂正&追記】**
89
+
90
+ 最初にアップしてたコード中の row["total"] = total; の位置が不適切だったので直しました。結果は同じですが余計な回数代入を行ってました。
91
+
92
+ 基本的に質問者さんの「該当のソースコード」と違うのは、そこにあった、
93
+
94
+ ```
95
+ table0.Columns.Add("total", GetType(Decimal), "CODE1 + CODE2 + CODEME1 + CODEME2")
96
+ ```
97
+
98
+ を、
99
+
100
+ ```
101
+ table.Columns.Add("total", typeof(decimal));
102
+
103
+ foreach (DataRow row in table.Rows)
104
+ {
105
+ decimal total = 0m;
106
+ foreach (object value in row.ItemArray)
107
+ {
108
+ if (value is decimal)
109
+ {
110
+ total += (decimal)value;
111
+ }
112
+ }
113
+ row["total"] = total;
114
+ }
115
+ ```
116
+
117
+ にしたという点のみです。「該当のソースコード」で許容時間で完了できるなら、私のコードでも許容時間内に入るのではないかと思いますが、試してみていかがだったでしょう?