年,月和日的不可表示的日期时间

时间:2015-12-30 18:05:53

标签: c# winforms linq datetimepicker

我有两个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中。这有什么不对?

2 个答案:

答案 0 :(得分:0)

Dec 31 - &gt; 1月31日没事。

1月31日 - &gt; 2月31日将给你例外。

答案 1 :(得分:0)

2月31日,由于显而易见的原因,它将失败。

尝试设置“try catch”并查看真正的异常并在字段中进行验证