This error occurs when the author performs a calculation of the number of rows that match the criteria, and reads the computed rows with OracleDataReader.
The query statements are:
Select Count (1) from Hp_ts Where ts_id>0
The C # execution process is:
public static int Getsingle (string strSQL) { try { openconnection (); OracleDataReader Oradatareader = ExecuteReader (Connection, CommandType.Text, strSQL, null); int count =-1;
if (oradatareader.hasrows = = True && oradatareader.read ()) { count = oradatareader.getint32 (0); ① This error exception is thrown here }
Oradatareader.close (); return count; } catch (System.Exception ex) { throw ex; } }
Later debugging was found to be due to oradatareader[0] (or oradatareader["Count (1)"]), the type is decimal, so directly with the above code ① results, the exception described in this article will occur.
Later, the following workaround is given:
Replace the ① with the code shown below
Count = Convert.ToInt32 (oradatareader[0]. ToString ());
Oracle database "Specified cast is farmland valid"