gpt4 book ai didi

c# - 如何向datagridview添加过滤器

转载 作者:行者123 更新时间:2023-11-30 14:08:38 25 4
gpt4 key购买 nike

我正在尝试将 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然后将该表设置为 DataGridViewDataSource,然后使用 table.DefaultView.RowFilter 过滤 DataGridView.

您可以使用以下示例简单地更改您的代码。

创建数据表:

var table = new DataTable();

向 DataTable 添加列:

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

向数据表添加行:

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

table.Rows.Add(range);

将表格设置为DataGridviewDataSource

dataGridView1.DataSource = table;

使用数据表过滤:

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

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

了解更多:

关于c# - 如何向datagridview添加过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34347874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com