Instead of
where (dtCutOffDate.Subtract(dt.Field<DateTime>("Date")).Days) >= iStartRange
&& dtCutOffDate.Subtract(dt.Field<DateTime>("Date")).Days <= iEndRange
Just add a '?' character.
where (dtCutOffDate.Subtract(dt.Field<DateTime?>("Date")).Days) >= iStartRange
&& dtCutOffDate.Subtract(dt.Field<DateTime?>("Date")).Days <= iEndRange
You should avoid the exception now.