我有一个绑定的 datagridView,我想使用 TextBox 值对其进行过滤。
我使用了这段代码:
private void ChercheStextBox_TextChanged(object sender, EventArgs e)
{
try
{
((DataTable)dataGridView3.DataSource).DefaultView.RowFilter = string.Format("LibService like '%{0}%'", ChercheStextBox.Text.Trim().Replace("'", "''"));
}
catch
{
}
}
但即使我使用了相同的代码,此代码也不会过滤 datagridView
在另一个 datagridView 中,它工作得很好。我不知道在哪里
我的代码有错误吗?
提前致谢。
EDIT:
我删除了 try catch 并收到此错误消息:
无法将“system.windows.forms.bindingsource”类型的对象转换为“system.data.datatable”类型
我该如何修复它?
DataSource 是 BindingSource 的一种类型,而不是 DataTable,因此请尝试以下代码:
private void ChercheStextBox_TextChanged(object sender, EventArgs e)
{
var bd = (BindingSource)dataGridView3.DataSource;
var dt = (DataTable)bd.DataSource;
dt.DefaultView.RowFilter = string.Format("LibService like '%{0}%'", ChercheStextBox.Text.Trim().Replace("'", "''"));
dataGridView3.Refresh();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)