不可表示的年月日日期时间
Un-representable DateTime for Year, Month and Day
我有两个 DateTimePicker 框,用户可以在其中选择 "Date From" 和 "Date To"。单击复选框时,两个框中的值都采用 "MMM" 格式,因此只显示月份(例如:Dec)。现在我的代码中有以下 Linq 语句,它在 DataTable 中搜索:
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。现在,当我在 From-DateTimePicker 中从 'Dec' 增加到 'Jan' 时,一切正常。将值增加到 'Feb' 会导致异常(请参阅主题)。这发生在
Application.Run(new Form1());
在我的 Program.cs 中。这里有什么问题?
12 月 31 日 -> 1 月 31 日可以。
1 月 31 日 -> 2 月 31 日将为您例外。
2 月 31 日,由于显而易见的原因,它会失败。
尝试输入 "try catch" 并查看真正的异常并在字段中进行验证
我有两个 DateTimePicker 框,用户可以在其中选择 "Date From" 和 "Date To"。单击复选框时,两个框中的值都采用 "MMM" 格式,因此只显示月份(例如:Dec)。现在我的代码中有以下 Linq 语句,它在 DataTable 中搜索:
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。现在,当我在 From-DateTimePicker 中从 'Dec' 增加到 'Jan' 时,一切正常。将值增加到 'Feb' 会导致异常(请参阅主题)。这发生在
Application.Run(new Form1());
在我的 Program.cs 中。这里有什么问题?
12 月 31 日 -> 1 月 31 日可以。
1 月 31 日 -> 2 月 31 日将为您例外。
2 月 31 日,由于显而易见的原因,它会失败。
尝试输入 "try catch" 并查看真正的异常并在字段中进行验证