- - PR -
DataGridの値判別
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-02-10 09:20
度々活用させていただいております。
データベースの値を判断してDataGridに別の値を代入する(よくある)ことをやりたと思っています。 例)1→男、2→女、3→不明 この場合、どこで判別させるのが一般的なのでしょうか? 私自身バカなコーディングでデータセットからBindしたあとにDataGridで判別させてしまい とんでもない処理時間が掛かってしまっています。 このような判別は、 ・データセット ・SQL文 ・グリッド ・その他 のどこで行えばよろしいでしょうか? 初歩の初歩で済みません。 | ||||
|
投稿日時: 2004-02-10 09:36
ASP.NETの話か、WindowsFormの話かわかりませんが、
ASP.NETと仮定して、僕の場合、 ItemDataBindイベント内で行単位の処理を行うようにしています。 もし、WindowsFormの事を仰られているのであれば、申し訳ありません。 編集: ItemDataBindingからItemDataBindとしました。 [ メッセージ編集済み 編集者: NAL-6295 編集日時 2004-02-10 09:41 ] | ||||
|
投稿日時: 2004-02-10 09:36
私ならSQL文でやります。
select case xxx when 1 then 男 when 2 then 女 ・・・ | ||||
|
投稿日時: 2004-02-10 09:39
問い合わせに初めて投稿します。じいじです。
性別のテーブル、たとえば T性別 -------------------- 性別ID 性別 1 男 2 女 3 不明 -------------------- があり、DataGrid に表示する前に値を代入するなら、 SQL 文でしょう。 | ||||
|
投稿日時: 2004-02-10 09:44
早速のお返事ありがとうございます。
説明不足が多々ありました。 Oracle8i、ASP.NET(C#)です。 やはりSQL文で行ったほうが処理的に早いようですね。 8iだとCASEが使えないので、DECODEを使うしかないですね。 ありがとうございました。 | ||||
|
投稿日時: 2004-02-10 10:00
ちょっときになったのですが、SQLでやったほうが早いかもしれないですが ItemDataBindのイベントで処理してれば「とんでもない処理時間」にならないと思います。 変換の複雑さで使い分けされるのが一番かと思います。 | ||||
|
投稿日時: 2004-02-10 10:03
もう一点お願いいたします。
データベースに文字列として日時が入っています。 200402100959 → 2004/02/10 09:59 とするにはどのようにしたらよいでしょうか? SQL文でも可能でしょうか? | ||||
|
投稿日時: 2004-02-10 10:20
TO_DATE関数が一番用途に合っていると思います。
ただ、日付型に変換されるのでそのあたり注意して下さい。 |