Beispiel #1
0
 /// <summary>
 /// Returns a column in datareader to specified type
 /// Use Nullable(Of ) for columns that can be DbNull
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="reader"></param>
 /// <param name="columnName"></param>
 /// <returns></returns>
 /// <remarks></remarks>
 public static T GetItemAs <T>(this System.Data.IDataReader reader, string columnName)
 {
     if (reader.IsDBNull(reader.GetOrdinal(columnName)))
     {
         if (typeof(T).IsGenericType && typeof(T).GetGenericTypeDefinition() == typeof(Nullable <>))
         {
             return(reader.GetItemAsNullable <T>(columnName));
         }
         if (typeof(T) == typeof(string))
         {
             return(default(T));
         }
         throw new InvalidCastException(string.Format("Column {0} is DbNull, use a Nullable(Of {1}) type", columnName, typeof(T)));
     }
     return((T)reader[columnName]);
 }