VB.NET で日付型のフィールドに NULL をセットする方法[プログラミング]
(2015-02-06 14:55:30) by shinoda


DBから DBNull で来た日付データを、そのまま(つまり NULL のまま)別の DataSet にセットしたいんだけど、

newDr.start_date = oldDr.start_date

なんてやると、NULL を代入しようとしたってことで当然例外エラーが出ちゃう。

そこで、

If oldDr.Isstart_dateNull Then
newDr.start_date = Nothing
End If 

とかするとエラー無く処理されて「お〜イエイ」とか思うんだけど、この場合、newDr.start_date には NULL ではなく 0001/01/01 12:00:00 という日付がセットされちゃう。DateTime.MinValue(日付の最小値)だね。

駄目やん(^^;

・・・と思ってたら、(普通の日付型変数には NULL はセット出来ないんだけど)DataSet のフィールドであれば Setフィールド名Null という「NULL を代入するための」メソッドが用意されているようだ。
そりゃそうだよな。DB の日付型フィールドには NULL 値がセットできるのに、DataSet のフィールドにセット出来なかったら不整合が起きるもんな。

ということで、

If oldDr.Isstart_dateNull Then
newDr.Setstart_dateNull()
End If 

とすれば出来ました。

お〜イエイ

コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る

Powered by
MT4i 3.0.8