如何使用BindingSource筛选DataGridView中的空白单元格?
解决BindingSource筛选DataGridView空白单元格的问题
我太懂这种卡壳的感觉了——明明常规筛选没问题,偏偏空白单元格就是筛不出来。核心原因在于你没考虑到数据源里的“空白”其实有两种常见情况:数据库返回的DBNull.Value,或者程序里生成的空字符串"",你之前试的IS null只能匹配前者,空字符串自然就被漏掉了。
给你几个直接能用的解决方案:
1. 同时匹配Null和空字符串
这是最稳妥的写法,直接把两种空白情况都包含进去:
BindingSource bs = new BindingSource(); bs.DataSource = Dgv_Data_List.DataSource; // 关键筛选条件:覆盖Null和空字符串 bs.Filter = "Test IS NULL OR Test = ''"; Dgv_Data_List.DataSource = bs;
2. 通过长度判断空白
如果你的Test列是字符串类型,还可以用长度来筛选,效果和上面一样:
bs.Filter = "LEN(Test) = 0 OR Test IS NULL";
额外小提醒
你代码里的Dgv_Data_List.Columns.Clear();其实没必要,直接重新绑定BindingSource后,DataGridView会自动更新显示筛选结果,清空列反而可能把你之前设置的列样式、宽度这些自定义配置搞丢。
内容的提问来源于stack exchange,提问作者Frank
相关产品推荐
相关产品推荐

