これはわかりません。以下のコードは、sqlplusで同じsqlを実行しても正しい値を取得しても、常にゼロを返します。 10gからOracle 11gにアップグレードしました。コードは10gで機能しました。地球上で何が起こっているのだろうか?OracleDataReaderが間違った値を返します
_Sql = "SELECT Count(ObjectId) FROM AOR_MV_DEV WHERE CASE_NUMBER = 'S101-118'";
OracleCommand _Cmd = new OracleCommand(_Sql, _Cnxn);
_Cmd.CommandText = _Sql;
_reader = _Cmd.ExecuteReader();
_reader.Read();
vColumnValue = _reader.GetDecimal(0);
私が思い出したように、Oracleのcount()関数は、整数ではなく、.NETの10進数(またはおそらくは2倍)の値に変換されます。問題はありませんが、デバッグと呼び出し'_reader [0]'は返された真の型が何であるかを調べます。 –
あなたは正しいです。私はDecimalを元々持っていましたが、intに変更して問題を修正できるかどうかを確認し、コードを投稿したときにそれを変更するのを忘れました。私はコードを更新します。ありがとう。 – Shawn