Oracle数据库“Specified cast is农田valid”

简介:

 

这种错误是笔者在执行一条计算符合条件的行有多少个,用OracleDataReader读取计算出的行数时发生。

查询语句为:

1
Select  Count (1)  FROM  HP_TS   Where   TS_ID>0

 C#执行过程为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public  static  int  GetSingle( string  strSQL)
         {
             try
             {
                 OpenConnection();
                 OracleDataReader oraDataReader = ExecuteReader(Connection, CommandType.Text, strSQL,  null );
                 int  count = -1;<br data-filtered= "filtered" >
                 if  (oraDataReader.HasRows ==  true  && oraDataReader.Read())
                 {
                     count = oraDataReader.GetInt32(0);   // ① 此处抛出该错误异常
                 }<br data-filtered= "filtered" >
                 oraDataReader.Close();
                 return  count;
             }
             catch  (System.Exception ex)
             {
                 throw  ex;
             }
         }

 

后来经过调试发现是由于oraDataReader[0] (或者是oraDataReader["Count(1)"]),的类型是decimal的,所以直接用以上代码①处的结果,将发生本文所述的异常。

后来,给出如下解决方法:

将①处替换为下面所示代码

1
count = Convert.ToInt32(oraDataReader[0].ToString());

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。




    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/5822668.html ,如需转载请自行联系原作者
相关文章
|
4月前
|
存储 关系型数据库 MySQL
|
6月前
|
存储 运维 定位技术
恢复点目标(Recovery Point Objective,简称RPO)
恢复点目标(Recovery Point Objective,简称RPO)
644 3
|
存储 XML SQL
Oracle 数据库自动诊断库 ADR(Automatic Diagnostic Repository)简介 发表在 数据和云
Oracle 数据库如果出现故障,我们的第一个反应是查看数据库的 alert log,但一些工程师对 alert log 不熟悉,实际上 alert log 位于Oracle 数据库自动诊断库(Automatic Diagnostic Repository,以下简称 ADR) 中,要熟悉 alert log,我们必需全面了解 ADR 的概念。
284 0
|
存储 关系型数据库 数据库
【DB吐槽大会】第59期 - PG 缺少便捷的坏块修复能力
大家好,这里是DB吐槽大会,第59期 - PG 缺少便捷的坏块修复能力
|
关系型数据库 Oracle SQL

推荐镜像

更多