在datagridview中过滤数据c#
我试图过滤掉我想要的数据,并隐藏所有其他数据。 这是我的代码列表,
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; }
有人可以帮我澄清一下这个问题吗? 谢谢。
尝试以下,
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);
尝试以下
BindingSource bs = new BindingSource(); bs.DataSource = dataGridView1.DataSource; bs.Filter = "[HeaderText] Like '%" + searchTextBox.Text + "%'"; dataGridView1.DataSource = bs;
我将我的数据源设置为列表,并使用LINQ过滤datagridview。
//Declare Global List _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; }
我希望它有所帮助