指定的类型转换无效-异常

本文关键字:异常 无效 类型转换 | 更新日期: 2023-09-27 18:01:16

我有以下情况。我有PL/SQL -我在表上点击"描述"按钮,它告诉我一列的类型是"INTEGER"。在c#方面,我有以下代码来读取该值:

    // GET ID
   if (!rdr.IsDBNull(rdr.GetOrdinal("ID")))
   {
      int ID =  rdr.GetInt32(rdr.GetOrdinal("ID")); // Here I get exception
   }

但是我得到了这个异常:

指定的类型转换无效。

有人能帮忙吗?

堆栈跟踪:

StackTrace " atOracle.DataAccess.Client.OracleDataReader。gettint32 (Int32 i)'r'n atGatewayFileImporter.Form1。点击(对象发送者,EventArgs e) inc:'Users'g'Documents'Visual工作室2012'Projects'FileImpo'FileImpo' form .cs:line 86" string

指定的类型转换无效-异常

From Oracle Data Type Mappings

此数据类型是NUMBER(38)数据类型的别名,为设计使OracleDataReader返回一个System.Decimal或oraclennumber,而不是整数值。使用。net框架数据类型可能导致溢出。

看起来像这映射到。net方面的十进制,你需要使用GetDecimal方法代替;

decimal ID =  rdr.GetDecimal(rdr.GetOrdinal("ID"));