DBから DBNull で来た日付データを、そのまま(つまり NULL のまま)別の DataSet にセットしたいんだけど、
newDr.start_date = oldDr.start_date
なんてやると、NULL を代入しようとしたってことで当然例外エラーが出ちゃう。
そこで、
If oldDr.Isstart_dateNull ThennewDr.start_date = NothingEnd 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 ThennewDr.Setstart_dateNull()End If
とすれば出来ました。
お~イエイ
コメントする