遇到一个问题:代码如下
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里,还不行贴代码