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

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

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

No.97739 の関連記事表示

<< 0 >>
■97739  Re[3]: c#DBnull の判定
□投稿者/ 魔界の仮面弁士 -(2021/07/07(Wed) 11:40:21)
    No97736 (c# さん) に返信
    > C#でDBに接続してログイン認証を行っています。
    何故最初から where で絞り込まないのでしょうか?


    > null判定のコードの書き方がわかりません。
    if (dataReader.IsDBNull(0))
    if (dataReader.IsDBNull(8))

    // int id = dataReader.GetInt(0);
    // string pw = dataReader.GetString(8);


    > DBに入力された値がないときにエラー文”このidは存在しない”と表示したいのですが
    「該当データが登録されていない」という事と
    「null 値が登録されている」事は異なります。

    例えば住所録テーブルから携帯電話の番号を調べようとした場合
     (1) 住所録テーブルに、その人を指すレコードが存在しない
     (2) 該当レコードはあったが、携帯番号欄が null であった(電話番号が不明という意味)
     (3) 該当レコードはあったが、携帯番号欄が空文字列であった(携帯を持っていないという意味)
     (4) 該当レコードがあり、携帯番号を示す文字列が保持されている
    という 4 つの状態がありえます。これらはすべて別の状態です。


    最初に提示頂いたコードで言えば、
    > if ((int)dataReader[0] == ID)
    > {
    >  a = true;
    のような処理が行われているようなので、
     ・while ループ前に a = false; にしておく
     ・ID を見つけたら a = true; に書き換え
     ・while ループ完了後も a == false なら、“このidは存在しない”とする
    という手順になるでしょう。

    実際には「bool a = false;」という一文字変数だと意図が分かりにくいので、
    「bool found = false;」や「bool hasID = false;」などの方が良さそうですが。
記事No.97736 のレス /過去ログ169より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -