我无法理解这一点。下面的代码总是返回零,即使我在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);
答案 0 :(得分:3)
首先,确保为正在运行的.NET版本使用正确的数据提供程序。这是最有可能的罪魁祸首。
其他想法:
尝试使用ExecuteScalar而不是executereader。
尝试从双重中选择1:从双重中选择1。看看是否返回1.然后尝试从双重中选择count(1)并查看是否得到1.
您不需要cmd.CommandText,因为您在创建命令时已经设置了它。
此外,您可能需要使用模式名称限定表名。