VB.NET で日付型のフィールドに NULL をセットする方法

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 

とすれば出来ました。

お~イエイ
Clip to Evernote

トラックバック(0)

このブログ記事を参照しているブログ一覧: VB.NET で日付型のフィールドに NULL をセットする方法

このブログ記事に対するトラックバックURL: http://blog.netandfield.com/mt/mt-tb.cgi/3304

コメントする

このブログ記事について

このページは、shinodaが2015年2月 6日 14:55に書いたブログ記事です。

ひとつ前のブログ記事は「今日は事務所泊まり」です。

次のブログ記事は「数値的なことがなかなか頭に入らないんよねえ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら