Get

public static T Get<T>(this IDataReader rd, string column)
        {
            return rd.Get(column, default(T));
        }

        public static T Get<T>(this IDataReader rd, string column, T defaultValue)
        {
            try
            {
                int ordinal = rd.GetOrdinal(column);

                object value = rd[ordinal];

                if (rd.IsDBNull(ordinal))
                {
                    value = defaultValue;
                }

                return (T)Convert.ChangeType(value, typeof(T));
                
            }
            catch (Exception e)
            {
                throw new DataReaderParseFieldException($"Erro na conversão de valores do atributo: [{column}] para tipo [{typeof(T)}]", e);
            }
        }
Example:
int id = reader.Get("Id", 10);
                        string nome = reader.Get("Nome", "...");
                        DateTime nascimento = reader.Get("Nascimento", DateTime.Now);
                        float valor = reader.Get("Valor", 0.05f);
                        decimal valorDecimal = reader.Get("Valor", new Decimal(15.75));

Description

IDataReader extension to get values

Details

Double click on the code to select all.

 

;