2012-03-08 35 views
0

我有一个datagridview,它是通过读取XML文件中的数据来填充的。 datagridview有列 - 模块,描述,截止日期和优先级。 截止日期栏采用以下格式,例如2012年2月12日,它以字符串形式保存到XML文件中。在2个日期时间选择器之间过滤datagridview截止行

在DGV旁边,我有2个datetimepickers - startDate和endDate。

用户选择开始和结束日期,然后按过滤器按钮。一旦他们这样做,DGV应只显示截止日期列在开始日期和结束日期之间的行。

我认为这会比较简单,但我认为我有问题转换。 当我按下过滤器按钮时,else语句正在启动。

这是我到目前为止的代码,抱歉,如果它有点混乱。

private void scheduleButton_Click(object sender, EventArgs e) 

    { 

    DateTimePicker startDate = new DateTimePicker(); 
     DateTimePicker endDate = new DateTimePicker(); 
     String startDateConverted = Convert.ToString(startDate.Value); 
     String endDateConverted = Convert.ToString(endDate.Value); 

     foreach (DataGridViewRow dr in TaskTable2.Rows) 
     { 
      String deadlineRow = dr.Cells["Deadline"].Value.ToString(); 
      if (startDateConverted<= deadlineRow && deadlineRow<= endDateConverted) 
      { 
       MessageBox.Show("Display Row"); // display filtered rows here. 
      } 
      else 
      { 
       MessageBox.Show("Please ensure start date is set before end date and that there is a task saved between the dates you selected."); 
      } 
     } 
    } 

if语句中的代码应该是显示过滤行的代码,但我也不知道如何对代码进行编码。

如果有人可以修改我的代码,并帮助我解决这个问题,将不胜感激。

回答

1

你,如果

if(starttime<= deadline && deadline<= endtime) 
+0

,谢谢,我已经编辑在if语句 – Rob 2012-03-08 16:10:03

+0

我仍然有比较不同日期的问题。开始日期和结束日期采用日期时间格式,由于某种原因,两者都具有当前时间的值。需要与开始日期和结束日期进行比较的DeadlineRow是“2012年3月12日”格式的字符串等。关于如何使3个日期能够进行比较的任何想法? – Rob 2012-03-08 16:14:05

+0

将它们与DateTime.Now比较,并从这里派生出你的逻辑? – Andrew 2012-03-08 16:58:53

0

更换 MessageBox.Show( “显示行”);

with MessageBox.Show(dr.ToString());

,如果它不工作,给我你的代码TaskTable2