Uwakpeter Ответов: 2

Как получить и вывести на экран дату в datetimepicker Для в C#


Я пытаюсь отобразить дату из базы данных на datetimepicker, но у меня есть эта ошибка:

Значение '01/01/0001 12:00:00 am не допустимым для "значение".'Значение'Should быть
между "MinDate" и "MaxDate". Имя параметра: значение

Что я уже пробовал:

dtpTerminationDate.Value = (tm.TerminationDate == null) ? DateTime.Now : 
    Convert.ToDateTime(tm.TerminationDate.ToShortDateString());


я использую пользовательский формат: dd/MM/yyyy hh:mm:ss
mindate:12/31/1900
maxdate:12/31/2090
формат даты базы данных: 2017-09-14 00: 00:00

2 Ответов

Рейтинг:
2

Graeme_Grant

Цитата:
Значение '01/01/0001 12:00:00 am не допустимым для "значение".'Значение'Should быть
между "MinDate" и "MaxDate". Имя параметра: значение

Если вы все еще получаете ошибку, то вам нужно установить точку останова и проверить, что данные/время действительно находятся в допустимых диапазонах min/max. Сообщение об ошибке убедительно свидетельствует о том, что это не так.

Вот рабочий пример:
var testDateString = "2017-09-01 00:00:00";
DateTime dateFormatted;
if (DateTime.TryParse(testDateString, out dateFormatted))
{
    dateTimePicker1.Value = dateFormatted;
}
else
{
    dateTimePicker1.Value = DateTime.Now;
}

Кроме того, даты обычно хранятся в базах данных в формате UTC, если приложение не локализовано. Если UTC, то вам нужно будет локализовать дату/время, прежде чем работать с ним.


Рейтинг:
13

Karthik_Mahalingam

использовать MinDate[^] Свойство для сравнения значения

DateTime defaultDate = DateTime.Now;
           dtpTerminationDate.Value = (tm.TerminationDate == null) ? DateTime.Now : tm.TerminationDate < dtpTerminationDate.MinDate ? defaultDate : tm.TerminationDate;


Uwakpeter

Большое вам спасибо, я потратил несколько дней на изучение этого вопроса

Karthik_Mahalingam

добро пожаловать :)

Graeme_Grant

Я не должен был хватать этот бутерброд посреди ответа... лол... 5'д

Karthik_Mahalingam

:), кажется, вы доступны 24X7

Graeme_Grant

У меня есть семья, бизнес, которым нужно управлять, и код, который нужно писать ... Обычно я отвечаю во время компиляций или тестовых процессов... Да, сон необязателен. ;)

Karthik_Mahalingam

отлично! хорошее использование времени