@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

DBnullとnullの違いについて

1
投稿者投稿内容
why_i
会議室デビュー日: 2004/04/21
投稿数: 2
投稿日時: 2004-06-15 16:51
はじめて質問します。Webアプリケーションを作成しています。
(Windows2000 + VS.NET2003)

データベースからデータを読むとき、DataReader.IsDBnullを使って判別しているのですが、
外部結合を使ってnullになる列の値ではIsDBnullがtrueになりません。

Objectがnullなのと、Objectの値がnullなのの違いだと想像していますが、
このようなときのチェックはどうすればよいのでしょうか?

現在はSQLの方でISNULL関数を使って長さ0の文字列に置き換えています。
もっとスマートな方法があれば、教えてください。
フジー
常連さん
会議室デビュー日: 2004/06/03
投稿数: 45
投稿日時: 2004-08-20 15:49
文法はVb.Netのものですが

If Object Is NULL Then
'Nullである
Else
'Nullではない
End If

ということではないんでしょうか?
soramimi
会議室デビュー日: 2003/10/29
投稿数: 19
投稿日時: 2004-08-20 16:25
SQL Server 2000 で試してみました。
が、外部結合を使って null になる列の値の IsDBNull は true になりましたよ?
platini
大ベテラン
会議室デビュー日: 2002/12/03
投稿数: 193
投稿日時: 2004-08-20 16:27
データベースエンジンの性質だったりしませんか?

つまり、.NET と無関係に 外部結合で結合相手が
見つからなかったものについて、そのデータベースエンジンは、
無条件に空文字列を返す仕様になったりしてませんか?

確かに、相手が見つからなかった場合、
規格としてはNULLをDBMSは返すべきですが。
DataReaderを使うなら、チェック方法自体は
DataReader.IsDBNullでまちがいないはずです。

念のため、
元の投書 IsDBnull ⇒  IsDBNull
あれ、VB.NETでは大文字小文字の区別どうだったっけ。

1

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