2012-03-08 57 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