Ну, вам просто нужно обратить внимание на этот фрагмент кода:
DateTime? LimitDate= null;
.....
var x = c.ExecuteScalar();
if (x != null)
LimitDate = (DateTime)x;
return LimitDate.Value;
Вы инициализируете LimitDate
в NULL, и если значение "x", возвращаемое из ExecuteScalar
, равно NULL, вы ничего не делаете - и, следовательно, не должны вызывать
return LimitDate.Value
на это, в конце концов LimitDate IS NULL
в этом случае! Или вам нужно инициализировать переменную LimitDate
ненулевым значением .....
Вам нужно что-то вроде этого:
if(LimitDate != null)
return LimitDate.Value;
else
return null;