指定的类型转换无效-异常
本文关键字:异常 无效 类型转换 | 更新日期: 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"));