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

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

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

No.39107 の関連記事表示

<< 0 >>
■39107  Re[1]: if文で…
□投稿者/ Hongliang -(2009/07/30(Thu) 12:18:32)
    2009/07/30(Thu) 12:19:10 編集(投稿者)

    > エラーが出るのは「if (myRead2.GetValue(0) = 0)」の部分で、
    > エラーの内容は「代入式の左辺には変数、プロパティ、またはインデクサを指定してください」と、

    C# では、代入と等値演算に別の演算子を使用します。
    代入は =
    等値は == (= が二つ)
    です。

    > 「型'object'を'bool'に暗黙的に変換できません。明示的な変換が存在します。(castが不足していないかどうかを確認してください。)」です。

    OracleDataReader.GetValue(Int32)
    http://msdn.microsoft.com/ja-jp/library/system.data.oracleclient.oracledatareader.getvalue.aspx
    を見れば分かりますが(インテリセンスにも出てきますね)、このメソッドの返値は Object 型です。
    Object 型のものと Int32(int)型のものは、等値演算で比較することはできません。
    GetValue(0) で取得できるのが int であるのが明らかなら、これをキャストして int 型にすることで等値演算が可能になります。
    http://msdn.microsoft.com/ja-jp/library/ms173105.aspx
    ただし、もしこの列が NULL 許容列なら、int 型の他に DBNull.Value が入っている可能性があります。このとき int にキャストすると例外が発生します。その場合は、OracleDataReader.IsDBNull(Int32) などで事前に確認するのが良いでしょう。
記事No.39105 のレス /過去ログ67より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -