报什么错啊,抓出来看看,可能就是没连接上oracle
在vs.net里试试能不能连上oracle啊

解决方案 »

  1.   

    调试一下, 看你已经执行了 ExecuteReader(), 数据库应该是连上了取数据出的错, 那要看数据类型是否一致
    你可以读成string类型, 再转化
      

  2.   

    "select to_char(rkrq,'mm'),round(sum(sb_zsxx.se)) from sb_zsxx where (ZSXM_DM='01' or zsxm_dm='02') and to_char(rkrq,'yyyy')='2003'group by to_char(rkrq,'mm')" ;//
    round(sum(sb_zsxx.se)) 这个在oracle里是单精度浮点型,我已经转成了int
    int [] iXiaoSH = new int [12] ; 这个数组定义的是int,数据类型应该没有问题啊。
    不知道什么原因,郁闷……………………
      

  3.   

    5555…………这里不能贴图,我把报错信息贴上来。说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidCastException: 由于符号不匹配或数据溢出以外的其他原因,未能转换数据值。例如,数据在数据存储区中已损坏,但该行仍可以检索。源错误: 
    行 40:  while ( myOleDbDataReader.Read ( ) ) 
    行 41:  {
    行 42:  iXiaoSH [iIndex] = myOleDbDataReader.GetInt32(1) ;
    行 43:  sMoth [iIndex] = myOleDbDataReader.GetInt32(0).ToString() + "月" ;
    行 44:    iIndex++ ;
    源文件: f:\bar\sjt.aspx.cs    行: 42 
    数据库肯定没有问题,sql语句也没有问题,sqlplus里可以正常检索出数据来。
      

  4.   

    Oracle的数字舍入函数是TRUNC,不是Round 
    A sample:
    TRUNC(15.79,1)
      

  5.   

    郁闷哦……我用trunc()函数,错误提示还是一样的。
    行 42:  iXiaoSH [iIndex] = myOleDbDataReader.GetInt32(1) ;难道没有人做成功吗?
      

  6.   

    Convert.ToInt32(myOleDbDataReader.GetString(1));
      

  7.   

    iXiaoSH [iIndex] = myOleDbDataReader.GetInt32(1) 
    vb.net 中
    iXiaoSH (iIndex) =cint( myOleDbDataReader(1) )