C#怎么筛选datagridView中数据,并重新显示
时间: 2024-12-20 09:29:40 浏览: 30
在C#中,DataGridView是一个用于显示表格数据的控件。如果你想筛选DataGridView中的数据并重新显示,可以按照以下步骤操作:
1. **获取当前数据源**:
如果DataGridView的数据来源于一个DataTable、DataSet或其他数据源,首先需要获取这个数据源。例如,假设它叫`dataGridView.DataSource`。
```csharp
DataTable dataTable = (DataTable)dataGridView.DataSource;
```
2. **创建筛选条件**:
定义一个Lambda表达式或者构造一个`Predicate<T>`对象来描述筛选条件。这通常基于某一列的数据值。例如,如果你想要筛选年龄大于30的记录:
```csharp
var condition = dataGridView.Columns["Age"].HeaderText == "Age" && (int)dataGridView.CurrentRow.Cells["Age"].Value > 30; // 假设"Age"列是整数类型
```
3. **筛选数据**:
使用 LINQ 来过滤数据表:
```csharp
var filteredRows = dataTable.AsEnumerable().Where(condition);
```
4. **更新DataGridView**:
将筛选后的数据重新设置回DataSource:
```csharp
dataGridView.DataSource = filteredRows.CopyToDataTable();
```
如果只想展示满足条件的行而不替换原有数据,你可以选择清空现有数据再添加筛选结果:
```csharp
dataGridView.Rows.Clear();
dataGridView.DataSource = filteredRows;
```
阅读全文