/// <summary> /// Obtém o valor do campo convertido para o tipo desejado. /// Em caso de nulo o valor padrão indicado é retornado. /// </summary> /// <typeparam name="T">O tipo desejado.</typeparam> /// <param name="reader">O registro corrente em inspeção.</param> /// <param name="fieldIndex">O nome do campo procurado.</param> /// <returns>O valor convertido para o tipo desejado.</returns> public static T Get <T>(this RecordResult result, string fieldName, T defaultValue) { var value = result.Current[fieldName]; if (!value.IsNull()) { var convertedValue = (T)System.Convert.ChangeType(value, typeof(T)); return(convertedValue); } return(defaultValue); }
/// <summary> /// Diz se o campo indicado existe no registro corrente. /// </summary> /// <param name="reader">O registro corrente em inspeção.</param> /// <param name="field">O nome do campo procurado.</param> /// <returns>Verdadeiro se o campo existe no registro.</returns> public static bool ContainsField(this RecordResult result, string field) { for (int i = 0; i < result.Current.FieldCount; i++) { var name = result.Current.GetName(i); if (name.Equals(field)) { return(true); } } return(false); }
/// <summary> /// Obtém o valor do campo convertido para o tipo desejado. /// Em caso de nulo o valor padrão indicado é retornado. /// </summary> /// <typeparam name="T">O tipo desejado.</typeparam> /// <param name="reader">O registro corrente em inspeção.</param> /// <param name="fieldIndex">O índice do campo procurado.</param> /// <returns>O valor convertido para o tipo desejado.</returns> public static T Get <T>(this RecordResult result, int fieldIndex, T defaultValue) { if (fieldIndex < result.Current.FieldCount) { var value = result.Current[fieldIndex]; if (!value.IsNull()) { var convertedValue = (T)System.Convert.ChangeType(value, typeof(T)); return(convertedValue); } } return(defaultValue); }