OracleDataReader返回错误的值

时间:2011-06-21 23:00:50

标签: c# .net oracle

我无法理解这一点。下面的代码总是返回零,即使我在sqlplus中运行相同的sql,我得到正确的值。我们刚刚从10g升级到Oracle 11g,代码工作在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 个答案:

答案 0 :(得分:3)

首先,确保为正在运行的.NET版本使用正确的数据提供程序。这是最有可能的罪魁祸首。

其他想法:

尝试使用ExecuteScalar而不是executereader。

尝试从双重中选择1:从双重中选择1。看看是否返回1.然后尝试从双重中选择count(1)并查看是否得到1.

您不需要cmd.CommandText,因为您在创建命令时已经设置了它。

此外,您可能需要使用模式名称限定表名。