在数据网格视图 c# 中筛选数据

本文关键字:数据 筛选 网格 数据网 视图 | 更新日期: 2023-09-27 18:34:35

我正在尝试过滤掉我想要的数据,并隐藏所有其他数据。 这是我的代码列表,

private void searchButton_Click_1(object sender, EventArgs e)
        {
            BindingSource bs = new BindingSource();
            bs.DataSource = dataGridView1.DataSource;
            bs.Filter = dataGridView1.Columns[1].HeaderText.ToString() + " LIKE '%" +  searchTextBox.Text + "%'";
            dataGridView1.DataSource = bs;
        }

但是当我运行它时,它会提示我错误消息

"'ID'运算符后缺少操作数。">

我也试过这个,同样的错误消息。

private void searchButton_Click_1(object sender, EventArgs e)
        {
            BindingSource bs = new BindingSource();
            bs.DataSource = dataGridView1.DataSource;
           // bs.Filter = dataGridView1.Columns[1].HeaderText.ToString() + " LIKE '%" + searchTextBox.Text + "%'";
            bs.Filter = "Sample ID like '*" + searchTextBox.Text + "*'";
            dataGridView1.DataSource = bs;
        }

谁能帮我澄清问题?谢谢。

在数据网格视图 c# 中筛选数据

尝试以下

BindingSource bs = new BindingSource();
bs.DataSource = dataGridView1.DataSource;
bs.Filter = "[HeaderText] Like '%" + searchTextBox.Text + "%'";
dataGridView1.DataSource = bs;

我将数据源设置为列表并使用 LINQ 筛选数据网格视图。

//Declare Global
List<ProductList> _productList
//Somewhere in code initialize datagridview
DataGridView1.DataSource = _productList
//TextBox TextChanged Function
private void TxtSearchProduct_TextChanged(object sender, EventArgs e)
{
   var result = _productList.Where(x => 
   x.ProductName.Contains(TxtSearchProduct.Text)).ToList();
   DataGridView1.DataSource = result;
}

我希望它有所帮助

尝试以下 ,

BindingSource bs = new BindingSource();
bs.DataSource = dataGridView1.DataSource;
bs.Filter = "yourColumnName like '%" + textBox1.Text + "%'";
dataGridView1.DataSource = bs;

在"搜索文本框已更改"事件中,请尝试以下操作:

(dataGridView1.DataSource as DataTable).DefaultView.RowFilter = string.Format("Field = '{0}'", searchTextBox.Text);
这个

主题有两种方法:

1 如果您使用的是数据表

bsItems.Filter = "VendorAccount like'*" + txtFilterAccount.Text + "*'";

2 像使用一样使用 ORM您必须创建新列表来存储过滤的数据

lstFilteredVendors = lstVendors.Where(x => x.VendorAccount.Contains(t.Text)).ToList();
                    bsItems.DataSource = lstFilteredVendors;
        for (int i = 0; i < dataGridView1.Rows.Count; i++) 
        {
            if (dataGridView1.Rows[i].Cells[6].Value.ToString().Contains(textBox1.Text))
            {
                dataGridView1.Rows[i].Visible = true;
            }
            else if (dataGridView1.Rows[i].Cells[0].Value.ToString().Contains(textBox1.Text))
            {
                dataGridView1.Rows[i].Visible = true;
            }
            else if (dataGridView1.Rows[i].Cells[2].Value.ToString().Contains(textBox1.Text))
            {
                dataGridView1.Rows[i].Visible = true;
            }
            else
            {
                dataGridView1.Rows[i].Visible = false;
            }
        }
相关文章: