- - PR -
DataColumn.Expressionにて日数差を算出したい
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-08-09 18:57
初めての書き込みです。お世話になります。
DataTableに2つのColumn(Datetime型:仮にA,Bとする)があります。 この2つの日数差を持つ3つめのColumn(Cとする)を追加したいと考えております。 このとき、DataColumn.Expressionに式を設定すれば良いと思うのですが、 どのような式を設定すればよいでしょうか? ヘルプも見ましたが、使える関数も限られているようでうまくいきません。 何かご存知あればご教授お願いします。 例: A=2004/08/09 B=2004/09/30 の場合、Cには"52"が入って欲しい | ||||
|
投稿日時: 2004-08-09 19:00
書きそびれました。。。
当方、C#にてWindowsApplicationの開発を行っております。 | ||||
|
投稿日時: 2004-08-10 09:35
データをDBから抜いているのであれば、DBサイドで計算した結果を取得するのが手っ取り早そう。
そうでない場合、DataSourceをどのような形で保持しているか分からないので、なんともいえません。 プログラム内で計算するなら、 DataTime#Subtract(DateTime value) DateTime#Subtract(TimeSpan value) こんなメソッド使い倒すのかな? | ||||
|
投稿日時: 2004-08-10 10:12
元はDBから取得しています。
しかし、その値をDBGridを使用して表示させており、 ユーザー入力により動的に日数差を表示させたいのです。 DataSourceはDataSetで保持しています。 | ||||
|
投稿日時: 2004-08-10 13:09
取得するときに日数差という列を増やす、というのは? | ||||
|
投稿日時: 2004-08-10 13:25
取得時に列を増やすというのもやってみましたが、
DataGridへの表示後に日付カラムを変更しても 日数差カラムの値は変わりませんでした。 で、今考えているのはDataTable.ColumnChanged イベントを拾って、そこで計算→日数差カラムに 設定と言う風にしようと思います。 やっぱりDataColumn.Expression では複雑な式は 設定出来ないですかね。。。 色々とありがとうございました。 | ||||
|
投稿日時: 2004-08-10 13:25
取得時に列を増やすというのもやってみましたが、
DataGridに表示後に日付カラムを変更しても、 日数差カラムの値は変わりませんでした。 で、今考えているのはDataTable.ColumnChanged イベントを拾って、そこで計算→日数差カラムに 設定と言う風にしようと思います。 やっぱりDataColumn.Expression では複雑な式は 設定出来ないですかね。。。 色々とありがとうございました。 | ||||
|
投稿日時: 2004-08-10 13:50
単純な引き算ではダメでしたか?(エラーでしたか?それとも思ったのと違う値でしたか?) 該当カラムのデータタイプが正しく(TimeSpanかな?)設定されていれば、イケるように思うのですが。。。 |