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