OracleDataReader возвращает неправильное значение - PullRequest
1 голос
/ 22 июня 2011

Я не могу этого понять. Код ниже всегда возвращает ноль, хотя когда я запускаю тот же sql в sqlplus, я получаю правильное значение. Мы только что перешли на Oracle 11g с 10g, а код работал на 10g. Что на земле может происходить?

_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);

1 Ответ

3 голосов
/ 22 июня 2011

Сначала убедитесь, что вы используете правильный поставщик данных для версии .NET, на которой вы работаете.Это наиболее вероятный виновник.

Другие идеи:

Попробуйте использовать ExecuteScalar вместо executereader.

Попробуйте выбрать 1 из двойного: выберите 1 из двойного.Посмотрите, возвращает ли это значение 1. Затем попробуйте выбрать count (1) из двойного и посмотрите, получите ли вы 1.

Вам не нужен cmd.CommandText, так как вы уже устанавливаете его при создании команды.

Также может потребоваться указать имя таблицы с именем схемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...