C#Datagridview过滤器使用文本框和按钮

时间:2017-02-26 16:13:50

标签: c# search datagridview

我想使用点击事件过滤我的datagridview,我使用以下代码:

BindingSource bs = new BindingSource();
        bs.DataSource = dataGridView3.DataSource;
        bs.Filter = dataGridView3.Columns[0].HeaderText.ToString() + " LIKE '%" + textBox1.Text + "%'";
        dataGridView3.DataSource = bs;

这适用于我的其他datagridviews,但它显示了此datagridview3的错误:Cannot perform 'Like' operation on System.Int32 and System.String

这是屏幕截图中的datagridview3,用于显示它所持有的数据:

1 个答案:

答案 0 :(得分:0)

我猜您必须将从textBox1.Text获得的值转换为数字。第一列中的数据是数字,不支持此比较文本(string)与数值。

以下是转换为整数值的一些方法:

int anInteger;
anInteger = Convert.ToInt32(textBox1.Text);
anInteger = int.Parse(textBox1.Text);

成功转换后,您可以调整代码并尝试查看代码是否有效:

BindingSource bs = new BindingSource();
        bs.DataSource = dataGridView3.DataSource;
        bs.Filter = dataGridView3.Columns[0].HeaderText.ToString() + " LIKE '%" + Convert.ToInt32(textBox1.Text) + "%'";
        dataGridView3.DataSource = bs;

注意:确保检查在点击搜索按钮之前,用户是否输入了有效号码。否则,您仍会收到错误,该值无法解析/转换为数字。

希望所有这些对你有所帮助。