字段是Decimal类型  而你插入数据是string类型  非浮点类型

解决方案 »

  1.   

    按你错误来看  确实是  string类型转换成Decimal类型报的错   
    这类错误都很好找的   可能是某一处代码有转换   可能不是“在向oracle插入数据是报的上面的错误”  而在插入之前就报错了 自己调试下
      

  2.   

    捕捉到 System.FormatException
      Message="将参数值从 String 转换到 Decimal 失败。"
      Source="System.Data.OracleClient"
      StackTrace:
           在 System.Data.OracleClient.OracleParameter.CoerceValue(Object value, MetaType destinationType)
           在 System.Data.OracleClient.OracleParameter.SetCoercedValueInternal(Object value, MetaType metaType)
           在 System.Data.OracleClient.OracleParameterBinding.PrepareForBind(OracleConnection connection, Int32& offset)
           在 System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals)
           在 System.Data.OracleClient.OracleCommand.ExecuteNonQueryInternal(Boolean needRowid, OciRowidDescriptor& rowidDescriptor)
           在 System.Data.OracleClient.OracleCommand.ExecuteNonQuery()
           在 DataAccess.DataBase.ExecuteStoredProcedure(String proName, OracleParameter[] oraParms) 位置 G:\公司源码\源代码\WHXF5G\WHXF5G\DataAccess\DataBase.cs:行号 594
      InnerException: System.FormatException
           Message="输入字符串的格式不正确。"
           Source="mscorlib"
           StackTrace:
                在 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
                在 System.Number.ParseDecimal(String value, NumberStyles options, NumberFormatInfo numfmt)
                在 System.Decimal.Parse(String s, NumberStyles style, IFormatProvider provider)
                在 System.Convert.ToDecimal(String value, IFormatProvider provider)
                在 System.String.System.IConvertible.ToDecimal(IFormatProvider provider)
                在 System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
                在 System.Data.OracleClient.OracleParameter.CoerceValue(Object value, MetaType destinationType)
           InnerException: 
      

  3.   

      在 DataAccess.DataBase.ExecuteStoredProcedure(String proName, OracleParameter[] oraParms) 位置 G:\公司源码\源代码\WHXF5G\WHXF5G\DataAccess\DataBase.cs:行号 594
    这不是写着呢,位置  database  594行
      

  4.   

    根源 应该是参数的类型OracleType.VarChar
      

  5.   

    诶  我算无语了   把try  catch都去掉  哪里有错自然出来了   调试记得把try catch 干掉 
      

  6.   

    你查看下 所有的参数是否有NULL值
      

  7.   

    还有就是 你的错误信息里有 datetime的错误  你跟踪堆栈 看看
      

  8.   

     看看所传的值。类型。。或者。把try catch 干掉, 自然提示哪里出错。。
      

  9.   

    以上情况全试了,一样找不出问题所在,就是在提交的代码
    oda = cmd.ExecuteNonQuery();//提交
    出错啦
      

  10.   

    好吧,是这样子的,我也碰见过,是参数个数不对,本来根据你的SQL语句第8个字段是Decimal的可是你的赋值是第7个字段String类型的意思就是,你的字段总数和你的参数列表总数 不一致,
      

  11.   

    string sql="select a,b,c from table";a intb decimalc stringmodel = new ..
    {
    a = dr.GetInt32(0),
    c = dr.GetString(1)
    }结果就是无法将Decimal类型强制转换为String,一个理儿预期的字段总数和你列表的总数不一致,错位了
      

  12.   

    无法将类型为“System.Decimal”的对象强制转换为类型“System.String”。