Fill() と GetData() と Expression プロパティの関係
DataColumn.Expression プロパティを使用すると、 DataTable 内のデータを自動で計算することができます。しかし、ある状況下でこの自動計算が行われない場合があるようです。
確認手順は以下のようになります。
- DataSet (xsd) を作成
- 作成した DataSet に TableAdapter を追加
- 何でもいいので、いくつかの列を SELECT
- Wizard によって作成された DataTable に列を追加
- 追加した列の Expression プロパティを設定
- 以下の内容を確認
- Fill() で取得
- GetData() で取得
- ObjectDataSource を使用して取得
上記結果を比較すると、 Fill() で取得したデータはExpression プロパティの内容が計算されていましたが、 GetData() と ObjectDataSource で取得したデータは計算が行われていませんでした。
ちょっとはまってしまうポイントだったので、備忘録としてメモしておきます。本当にこんな仕様なのか、それとも私の使用法が間違っているのかは不明です。この件に関して、何か情報をお持ちの方がいらっしゃいましたら、コメントなどをいただけると幸いです :-)