IsDBNull関数についてです。
IsDBNULL関数をMSDNオンラインで調べたんですが
いまいち意味がわかりませんでした涙
ソース上で
If IsDBNULL(wk_DBData) = false Then
〜〜〜〜
EndIf
とあったんです。
ここに改造をかけようとしたんですが
If文の判断に困ってしまいました。
①IsDBNull(wk)とすると
どんなときに true/falseの値を返すのでしょうか?
単純に NULLかどうかの判断ではないと思うのですが
よくわかりません。
②DBNull型とは何なんでしょうか?
ISDBNULL関数
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vblr7/html/vafctisnull.asp
DBNullクラス
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdbnullclasstopic.asp
大変申し訳ありませんが
よろしくお願いいたします。
>1. IsDBNull(wk)とすると
>どんなときに true/falseの値を返すのでしょうか?
1番目のリンク先(IsDBNull 関数)の例のままでしょう…
[解説]の通りの例ですね。
>Dim MyVar As Object
>im MyCheck As Boolean
変数が初期化されていないことを示す Nothing とは異なります。
>yCheck = IsDBNull(MyVar) ' Returns False.
NULL 文字列と呼ばれる長さ 0 の文字列 ("") とも異なります。
>yVar = ""
>yCheck = IsDBNull(MyVar) ' Returns False.
System.DBNull 値は、オブジェクト型 (Object) の式が参照不可能なデータまたは存在しないデータを表すかどうかを示します。
>yVar = System.DBNull.Value
>yCheck = IsDBNull(MyVar) ' Returns True.
>sgBox(MyCheck)
>2. DBNull型とは何なんでしょうか?
2番目のリンク先(DBNull クラス)の[解説]のままでしょう…
ページの頭に
>DBNull クラス
>null 値を表します。
とも書いてありますし…
>単純に NULLかどうかの判断ではないと思うのですが
>よくわかりません。
単純に NULL かどうかの判断なんじゃないでしょうか?(^^;)
むらちゃんさんの言う NULL ってどういう状態のことを
指してるんですか?
どこまで理解できているのかが読み取れませんでしたので、概要だけ書きます。
> (1) IsDBNull(wk)とすると
> どんなときに true/falseの値を返すのでしょうか?
SDKに書かれている内容、そのままですよ。
wk が System.DBNullクラスのインスタンスであった場合に、True となります。
なお、Microsoft.VisualBasic.Information.IsDBNull() の内部実装は、VB的に表せば
Public Shared Function IsDBNull(ByVal Expression As Object) As Boolean
If (Expression Is Nothing) Then
Return False
End If
If TypeOf Expression Is DBNull Then
Return True
End If
Return False
End Function
のようになっています。見ての通り、単純に DBNull かどうかを判断しているだけです。
> 単純に NULLかどうかの判断ではないと思うのですが
この場合に判断しているのは、「NULL」ではなく「DBNull」です。
なお DBNull は、C#でいうところの null キーワードとは全く関係が無いので
混同しないようにしてください。(C# の null は、VB では Nothing に相当します)
> (2) DBNull型とは何なんでしょうか?
「データベースにおける Null値」を表したシングルトンクラスです。
VB6/VBAでいうところ Null キーワードに近い存在です。
# データベースでは、『何もない値』や『不明な値』を表現するために、
# NULL という値が利用されます。(空文字列 や 数値の0とは、意味が異なります)
ツイート | ![]() |