public bool Read() { bool result = false; if (buffer != null) { if (!IsLastRecordReaded || !dbReader.IsClosed) { if (!isFirstRecordReaded) { if (!dbReader.Read()) { if (!isFirstRecordReaded) { dbReader.Close(); Connection.Close(); } IsLastRecordReaded = true; buffer = null; return(false); } isFirstRecordReaded = true; } buffer.RemoveAll(); for (int i = 0; i < dbReader.FieldCount; i++) { object value = null; // dont forget to truncate oracle decimal to normal .net decimal var oraReader = (Oracle.ManagedDataAccess.Client.OracleDataReader)dbReader; if (!dbReader.IsDBNull(i) && oraReader.GetProviderSpecificFieldType(i) == typeof(Oracle.ManagedDataAccess.Types.OracleDecimal)) { value = (decimal)Oracle.ManagedDataAccess.Types.OracleDecimal.SetPrecision(oraReader.GetOracleDecimal(i), 28); } else { value = dbReader[i]; } buffer.SetArrayItem(i, value); buffer.SetArrayItem(dbReader.GetName(i), value); } if (!dbReader.IsClosed && !dbReader.Read()) { IsLastRecordReaded = true; dbReader.Close(); Connection.Close(); } result = true; } else { buffer = null; } } return(result); }
public bool Read() { bool result = false; if (buffer != null) { if (!IsLastRecordReaded || !dbReader.IsClosed) { if (!isFirstRecordReaded) { if (!dbReader.Read()) { if (!isFirstRecordReaded) { dbReader.Close(); Connection.Close(); } IsLastRecordReaded = true; buffer = null; return false; } isFirstRecordReaded = true; } buffer.RemoveAll(); for (int i = 0; i < dbReader.FieldCount; i++) { object value = null; if(ConnectionType == Constants.nDATABASE_Oracle) { } else { value = dbReader[i]; //if(value is DBNull) // value = null; } buffer.SetArrayItem(i, value); buffer.SetArrayItem(dbReader.GetName(i), value); } if (!dbReader.IsClosed && !dbReader.Read()) { IsLastRecordReaded = true; dbReader.Close(); Connection.Close(); } result = true; } else { buffer = null; } } return result; }