如何向datagridview添加filter

我正在尝试将csv文件加载到datagridview,现在我想向datagridview添加过滤

怎么做? 这是我如何阅读和加载csv文件

openFileDialog1.InitialDirectory = @"C:\"; openFileDialog1.Title = "Open CSV Files"; openFileDialog1.CheckFileExists = true; openFileDialog1.CheckPathExists = true; openFileDialog1.DefaultExt = "CSV"; openFileDialog1.Filter = "CSV files (*.csv)|*.csv|All files(*.*)|*.*"; openFileDialog1.FilterIndex = 1; openFileDialog1.RestoreDirectory = true; try { if (openFileDialog1.ShowDialog() == DialogResult.OK) { string csvPath = openFileDialog1.FileName; string rowValue; // int rowValue = int.Parse(??); string[] cellValue; dataGridView1.Rows.Clear(); //dataGridView1.Columns.Clear(); if (System.IO.File.Exists(csvPath)) { System.IO.StreamReader fileReader = new StreamReader(csvPath); rowValue = fileReader.ReadLine(); cellValue = rowValue.Split(','); for (int i = 0; i <= cellValue.Count() - 1; i++) { DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn(); column.Name = cellValue[i]; //column name , value column.HeaderText = cellValue[i]; dataGridView1.Columns.Add(column); // dataGridView1.Columns[].CellType = typeof(Int64); //Conver.ToString dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; // Korean? 칼럼 헤더 가운데 정렬 // dataGridView1.RowHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; // dataGridView1.Columns[0].DataPropertyName = "field name"; } while (fileReader.Peek() != -1) { rowValue = fileReader.ReadLine(); cellValue = rowValue.Split(','); dataGridView1.Rows.Add(cellValue); } fileReader.Dispose(); fileReader.Close();` 

不是直接向DataGridView添加行,而是将它们添加到DataTable ,然后将该表设置为DataGridView DataSource ,然后使用该table.DefaultView.RowFilter过滤DataGridView

您只需使用以下示例更改代码即可。

创建一个DataTable:

 var table = new DataTable(); 

将列添加到DataTable:

 table.Columns.Add("column name"); 

向DataTable添加行:

要使用范围添加行,例如string[]

 table.Rows.Add(range); 

将表设置为DataGridview DataSource

 dataGridView1.DataSource = table; 

使用DataTable过滤:

要使用数据表进行过滤,例如仅显示FirstNameJohn行:

 ((DataTable)dataGridView1.DataSource).DefaultView.RowFilter = "FirstName = 'John'"; 

学到更多:

  • 创建DataTable
  • 将列添加到DataTable
  • 将数据添加到DataTable
  • DataView.RowFilter和Filter Expression 。