- PR -

DataGridの値判別

投稿者投稿内容
BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2004-02-10 09:20
度々活用させていただいております。

データベースの値を判断してDataGridに別の値を代入する(よくある)ことをやりたと思っています。
例)1→男、2→女、3→不明

この場合、どこで判別させるのが一般的なのでしょうか?
私自身バカなコーディングでデータセットからBindしたあとにDataGridで判別させてしまい
とんでもない処理時間が掛かってしまっています。

このような判別は、
・データセット
・SQL文
・グリッド
・その他
のどこで行えばよろしいでしょうか?

初歩の初歩で済みません。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2004-02-10 09:36
ASP.NETの話か、WindowsFormの話かわかりませんが、

ASP.NETと仮定して、僕の場合、
ItemDataBindイベント内で行単位の処理を行うようにしています。

もし、WindowsFormの事を仰られているのであれば、申し訳ありません。

編集:
ItemDataBindingからItemDataBindとしました。

[ メッセージ編集済み 編集者: NAL-6295 編集日時 2004-02-10 09:41 ]
焼きそば
ベテラン
会議室デビュー日: 2002/11/06
投稿数: 86
お住まい・勤務地: 東京
投稿日時: 2004-02-10 09:36
私ならSQL文でやります。

select case xxx when 1 then 男 when 2 then 女 ・・・

じいじ
大ベテラン
会議室デビュー日: 2003/11/11
投稿数: 223
投稿日時: 2004-02-10 09:39
問い合わせに初めて投稿します。じいじです。

性別のテーブル、たとえば

T性別
--------------------
性別ID  性別
 1    男
 2    女
 3    不明
-------------------- があり、DataGrid に表示する前に値を代入するなら、

SQL 文でしょう。


BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2004-02-10 09:44
早速のお返事ありがとうございます。
説明不足が多々ありました。
Oracle8i、ASP.NET(C#)です。

やはりSQL文で行ったほうが処理的に早いようですね。

8iだとCASEが使えないので、DECODEを使うしかないですね。

ありがとうございました。
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-02-10 10:00
引用:

この場合、どこで判別させるのが一般的なのでしょうか?
私自身バカなコーディングでデータセットからBindしたあとにDataGridで判別させてしまい
とんでもない処理時間が掛かってしまっています。




ちょっときになったのですが、SQLでやったほうが早いかもしれないですが
ItemDataBindのイベントで処理してれば「とんでもない処理時間」にならないと思います。

変換の複雑さで使い分けされるのが一番かと思います。

BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2004-02-10 10:03
もう一点お願いいたします。

データベースに文字列として日時が入っています。
200402100959 → 2004/02/10 09:59

とするにはどのようにしたらよいでしょうか?
SQL文でも可能でしょうか?
焼きそば
ベテラン
会議室デビュー日: 2002/11/06
投稿数: 86
お住まい・勤務地: 東京
投稿日時: 2004-02-10 10:20
TO_DATE関数が一番用途に合っていると思います。

ただ、日付型に変換されるのでそのあたり注意して下さい。

スキルアップ/キャリアアップ(JOB@IT)