- PR -

日付時刻の実装方法についての質問

1
投稿者投稿内容
とら
ベテラン
会議室デビュー日: 2006/10/04
投稿数: 54
投稿日時: 2006-10-05 17:22
とらです。

VisualStudio2005を使用してC#のWindowsアプリ(DBはOracle)を開発しています。
皆さんに質問なんですが、日付、時刻の入力やDBへの格納はどのようにされていますか?
結構、好みの問題も合って、まちまちなのでは無いかと感じているのですが、
私だけでしょうか?

以下は、私の例なのですが・・・

・日付型(画面)
本当はDateTimePickerを使用したいところなのですが、null値を許容してくれない
ので、たとえば、納期のように、設定しないこともあるような項目ですと、Enabled
をfalseにしたところで、うっすらと日付が見えてしまいます。

どうも、この部分が気に入らなくて、画面入力はMaskedTextBoxを使用しています。
めんどくさいのと、カレンダーの選択とかをしようと思うと当然色々コードを
書く必要があるので、不本意では有りますが・・・

・日付型(Oracleのデータ型)
これは、Dateを使用しています。
特に、問題は感じていません。

・日付型の変数
DBの項目には当然Null値が存在するため、Nullable<DateTime>を使用しています。
これも少々めんどくさいです。

・時刻型(画面)
日付型と同様の理由で、MaskedTextBoxを使用しています。
また、DateTimePickerの場合FormatをTimeにすることによって、時刻っぽく
表示してくれるのですが、ドロップダウンするとカレンダーが出てきてしまう
所なども使わない理由のひとつです。

・時刻型(Oracleのデータ型)
ここは悩ましいところですが、6桁のNumber型を使用しています。
本来は、Date型の日付の日付部分を無視してとかするのが綺麗なようにも
思いますが、使用しない日付部分にも値をセットする必要があったりと
あまりに煩雑なような気がしてNumber型にしています。

・時刻型の変数
日付と同様にNullable<int>を使用しています。


実際には販売されているコントロールを使用したりするのが一般的なのかもしれない
と思いながら、上記のような構成でコーディングしています。

皆さんの実装方法や、こうした方が良いんじゃないのと言うようなアドバイス等
ありましたら、よろしくお願いします。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2006-10-05 17:49
DateTimePickerを使いたいなら、こんなのもいいかもしれません。

Japan.internet.com デベロッパー - Nullを許容するDateTimePickerコントロール
http://japan.internet.com/developer/20050822/25.html
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-10-10 22:08
チェックボックスをつける
_________________
1

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