- - PR -
DBnullとnullの違いについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-06-15 16:51
はじめて質問します。Webアプリケーションを作成しています。
(Windows2000 + VS.NET2003) データベースからデータを読むとき、DataReader.IsDBnullを使って判別しているのですが、 外部結合を使ってnullになる列の値ではIsDBnullがtrueになりません。 Objectがnullなのと、Objectの値がnullなのの違いだと想像していますが、 このようなときのチェックはどうすればよいのでしょうか? 現在はSQLの方でISNULL関数を使って長さ0の文字列に置き換えています。 もっとスマートな方法があれば、教えてください。 |
|
投稿日時: 2004-08-20 15:49
文法はVb.Netのものですが
If Object Is NULL Then 'Nullである Else 'Nullではない End If ということではないんでしょうか? |
|
投稿日時: 2004-08-20 16:25
SQL Server 2000 で試してみました。
が、外部結合を使って null になる列の値の IsDBNull は true になりましたよ? |
|
投稿日時: 2004-08-20 16:27
データベースエンジンの性質だったりしませんか?
つまり、.NET と無関係に 外部結合で結合相手が 見つからなかったものについて、そのデータベースエンジンは、 無条件に空文字列を返す仕様になったりしてませんか? 確かに、相手が見つからなかった場合、 規格としてはNULLをDBMSは返すべきですが。 DataReaderを使うなら、チェック方法自体は DataReader.IsDBNullでまちがいないはずです。 念のため、 元の投書 IsDBnull ⇒ IsDBNull あれ、VB.NETでは大文字小文字の区別どうだったっけ。 |
1