Ответ 1
Сначала нужно направить его на DateTime
:
DateTime leave = (DateTime) rdMonthlyLeave["LEAVE_DATE"];
DoSomethingWith(leave.ToString("dd-MM-yyyy"));
или просто
((DateTime)rdMonthlyLeave["LEAVE_DATE"]).ToString("dd-MM-yyyy")
Обратный тип индексатора DataReader - это просто object
, а object
не имеет перегрузки ToString
, которая принимает строку. Не забывайте, что перегрузка - это решение времени компиляции - компилятор выбирает соответствующий метод с совместимой сигнатурой, и только переопределение происходит на основе типа времени выполнения. В этом случае перегрузка ToString
с совместимой сигнатурой отсутствует, поэтому вы получаете ошибку времени компиляции.