指定的演员表无效 - 例外

时间:2015-07-07 08:03:36

标签: c# oracle

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

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

但我得到了这个例外:

  

指定的演员表无效。

有人可以帮忙吗?

堆栈追踪:

  

StackTrace“at   Oracle.DataAccess.Client.OracleDataReader.GetInt32(Int32 i)\ r \ n at   GatewayFileImporter.Form1.button1_Click(Object sender,EventArgs e)in   c:\ Users \ g \ Documents \ Visual Studio   2012 \ Projects \ FileImpo \ FileImpo \ Form1.cs:第86行“string

1 个答案:

答案 0 :(得分:0)

来自Oracle Data Type Mappings

  

此数据类型是NUMBER(38)数据类型的别名,并且是   旨在让OracleDataReader返回System.Decimal或。{   OracleNumber而不是整数值。使用.NET Framework   数据类型可能导致溢出。

看起来这样在.NET端映射到十进制,你需要使用GetDecimal method代替;

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