投稿者 魔界の仮面弁士  (社会人) 投稿日時 2011/3/2 18:10:13
> DGV.Columns("選択").DataPropertyName = "選択"
> DGV.Columns("金額").DataPropertyName = "金額"
> こちらはDecimalに変更しました。
> Dim i As Decimal = rdr1.Item("AMOUNT")
違います。「AMOUT」の型ではなく、DataTable の「金額」列の型です。

> dt.Columns.Add("選択")
> dt.Columns.Add("金額")
これらの記述法は、String 型の列が作成される事になります。
先の私のコードと見比べてみてください。


金額列が文字列であるがゆえに、
> dt.Compute("Sum(金額)", "選択 = True")
の処理が
> 集約関数Sum()および型:Stringの使用が無効です。
の例外を発生させることになるわけです。


> Dim SumObject As New Object        
> SumObject = dt.Compute("Sum(金額)", "選択 = True")
ここでの New は無意味です。As Object にしましょう。