C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.43524 の関連記事表示

<< 0 >>
■43524  NULLの設定について
□投稿者/ がながな -(2009/11/12(Thu) 08:54:25)

    分類:[.NET 全般] 

    いつもお世話になります。
    NULLかどうかを判断したいのですが、どのようにすればよろしいでしょうか?
    テーブルショップマスタ内に商品IDと言う数値型のフィールドがあります。
    商品IDは数値又はNULLが入っています。変数SyouhinIDに商品IDの値をセットしたいのですが、

    dim rsASO as adodb.recordset
    dim SyouhinID as long


    中間省略

    '//---商品IDがNULLの時
    If rsASO("商品ID") Is System.DBNull.Value Then
    SyouhinID = 0
    End If
    '//---商品IDがNULLでない時
    If Not (rsASO("商品ID") Is System.DBNull.Value) Then
    SyouhinID = rsASO("商品ID").Value
    End If


    とした時、商品IDがNULLなのに
    '//---商品IDがNULLでない時
    If Not (rsASO("商品ID") Is System.DBNull.Value) Then
    SyouhinID = rsASO("商品ID").Value
    End If
    が通ってしまいます。
    どのようにすれば解決できるのでしょうか?
    よろしく御願いいたします。

親記事 /過去ログ74より / 関連記事表示
削除チェック/

■43527  Re[1]: NULLの設定について
□投稿者/ 魔界の仮面弁士 -(2009/11/12(Thu) 09:37:30)
    No43524 (がながな さん) に返信
    > dim SyouhinID as long
    お使いのデータベースが分からないので、何とも言えませんが、
    本当に Long 型が必要なのでしょうか?
    (9桁程度までの数値であれば、Integer で収まるはずです)
    
    
    ちなみに Jet Provider は、64bit整数型をサポートしていません。
    数値は、Decimal型、Integer(Int32)型、Double型などにマッピングされます。
    
    SQL Server の場合には、int 型が Integer、bigint 型は Long に相当します。
    
    
    > '//---商品IDがNULLの時
    > If rsASO("商品ID") Is System.DBNull.Value Then
    
    これは実際の値ではなく、Field オブジェクトを返しますので、DBNull にはなりえません。
    rsASO("商品ID") は、rsASO.Fields("商品ID") の省略表記であって、
    rsASO("商品ID").Value とは異なる事に注意してください。
    
    
    実際の値を調べるのであれば、
     rsASO.Fields("商品ID").Value
    もしくは
     rsASO.Collect("商品ID")
    を利用してください。これらであれば、実際の値が返されます。
    
    なお、Field オブジェクトを変数にキャッシュしない場合には、
    Collect プロパティを使った方が、Value プロパティよりも効率が良いとされています。
記事No.43524 のレス /過去ログ74より / 関連記事表示
削除チェック/

■43534  Re[2]: NULLの設定について
□投稿者/ とも -(2009/11/12(Thu) 11:03:26)
    stringに変換してやったら空にならないでしょうか?
    それで判断してやればできなかったかな。
    rsASO("商品ID").value.tostring = string.empty

    とかじゃ判別できませんか?

    あとその処理の場合はIf Else でいいんじゃないかなとも思います。
記事No.43524 のレス /過去ログ74より / 関連記事表示
削除チェック/

■43546  Re[3]: NULLの設定について
□投稿者/ がながな -(2009/11/12(Thu) 13:18:07)
    ありがとうございました!!
    無事解決いたしました。
    ありがとうございます。
記事No.43524 のレス / END /過去ログ74より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -