我想使用点击事件过滤我的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,用于显示它所持有的数据:
答案 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;
注意:确保检查在点击搜索按钮之前,用户是否输入了有效号码。否则,您仍会收到错误,该值无法解析/转换为数字。
希望所有这些对你有所帮助。