当前位置: 代码迷 >> Oracle技术 >> : C# OracleDataReader读取数据出错,程序直接退出,无异常信息
  详细解决方案

: C# OracleDataReader读取数据出错,程序直接退出,无异常信息

热度:454   发布时间:2016-04-24 08:05:06.0
求助: C# OracleDataReader读取数据出错,程序直接退出,无错误信息
遇到一个问题:代码如下
    using (OracleDataReader reader = OracleHelper.ExecuteReader(OracleHelper.ConnectionString, CommandType.Text, strSQL))
                {
                    // Scroll through the results
                    while (reader.Read())
                    {
                        // return match item
                        object[] values = new object[reader.FieldCount];
                       reader.GetValues(values);
                        objList.Add(new WorkTimeCount(values));
                    }
                }
strSQL是自己拼接的SQL语句,调试情况下,发现只要去获取 reader.getvalue(2)/getstring(2) 或是reader(2) 整个软件就崩溃且无exception信息出来..但是 reader.getvalue(0)/getvalue(1)是有值的,可以在调试器中得到数据.
reader.gervalue(2)在数据库中是比较大的数据, SQL字段为:
sum(case when substr(Start_Time, 1, 10)='{1:yyyy-MM-dd}' then  (to_date(a.end_time,'yyyy-mm-dd hh24:mi:ss') -to_date(a.start_time,'yyyy-mm-dd hh24:mi:ss')) else 0 end)*24*60*60 as Col,....
PLSQL 查询出来是有值的,不过值比较大 类似:3602.99999999999999999999999999999999999 
另外在 SQL语句中做了截取也不行..to_number() 也不行. 
最后用to_char才解决....
问题虽然解决了..但是想知道为什么崩溃?
求解答 分不多  
 
------解决思路----------------------
try了也会直接退出程序?
还是弹出了错误框你点了中止?
在整个方法里?入try里,还不行贴代码