2013-12-12 3 views
0

Один из столбцов в моем DataGrid (dataGridView1) называется DatePaid и на кнопку мыши, а именно:только просматривать строки в DataGrid, которые удовлетворяют определенному условию

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

Я хочу, чтобы показать все строки в таблице данных, которая составляет 2 недели или старше в колонке DatePaid (с использованием переменной cRentStart в качестве начальной точки - самой даты в формате dd/mm/yyy). Все даты должны быть в формате 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(); 

Обратите внимание, что это преобразование работает только тогда, когда культура приложения видит вашу строку как дд/мм/гггг, если ваша культура например, он будет выглядеть как MM/dd/yyyy

Класс записей должен быть заменен вашим собственным классом по курсу

Смежные вопросы