2013-12-12 70 views
0

其中一列在我的DataGrid(dataGridView1)被稱爲DatePaid和按鈕點擊即:只能查看數據網格行符合一定條件

private void viewOverdue_Click(object sender, EventArgs e) 
{ 
    // details here 
} 

我希望它會顯示所有列在DatePaid列中(使用變量cRentStart作爲起點 - 這是dd/mm/yyy格式中的日期本身)的2周或更長時間的數據網格中。所有日期必須採用格式dd/mm/yyyy。

回答

1

您必須過濾記錄的完整列表,然後重新綁定新的過濾列表。

private void viewOverdue_Click(object sender, EventArgs e) 
{ 
    Records[] filteredRecords = allRecords.Where(x => x.DatePaid <= cRentStart).ToArray(); 
    dateGridView1.DataSource = filteredRecords; 
    dateGridView1.DataBind(); 
} 

這應該工作,如果這兩個值是日期類型的實際,否則您必須將值轉換爲日期。

,如果他們是字符串,例如,查詢應該是這樣的:

Records[] filteredRecords = allRecords.Where(x => Convert.ToDateTime(x.DatePaid) <= Convert.ToDateTime(cRentStart)).ToArray(); 

注意,如果應用程序的文化可以看到您的字符串作爲DD/MM/YYYY,如果你的文化這種轉換隻適用是en-US,例如它會將其視爲MM/dd/yyyy

記錄類應該由您自己的課程取代