У меня есть два поля DateTimePicker, где пользователь может выбрать «Дата From» и «Date To». Когда щелчок checkBox щелкнут, значения в обоих блоках получают формат «MMM», поэтому отображается только месяц (например: Dec). Теперь у меня есть следующее заявление Linq в моем коде, который ищет в DataTable:Непредставленный DateTime для года, месяца и дня
if (checkSearchMonth.Checked)
{
DateDt.CaseSensitive = false;
//DateDt = my DataTable
var rowSources = DateDt.AsEnumerable()
.Where(myRow => myRow.Field<DateTime>(getSelectedItem).Month > pickDateFrom.Value.Month)
//getSelectedItem = Column name
.Where(myRow => myRow.Field<DateTime>(getSelectedItem).Month < pickDateTo.Value.Month)
.OrderBy(myRow => myRow.Field<DateTime>(getSelectedItem));
if (rowSources.Any())
dataGridPrev.DataSource = rowSources.CopyToDataTable();
}
Мои DateTimePickers оба имеют ShowUpDown. Теперь, когда я увеличиваю с 'Dec' до 'Jan' в моем From-DateTimePicker, все работает отлично. Увеличение значения до «Feb» вызывает исключение (см. Раздел). Это происходит в
Application.Run(new Form1());
в моей программе.cs. Что здесь не так?
Как избежать этого в моем случае? –
Когда они устанавливают флажок, установите DatePicker в первый месяц месяца выбранной даты Date: new DateTime (x.Year, x.Month, 1) –
Посмотрите на то, что генерирует даты, которые невозможны (например, 31 февраля.) Недействительная дата исходит от * где-то *. – SaxxonPike