C#datagrid单元格不是NULL

时间:2009-06-09 20:14:45

标签: c# datagridview

我想在列strSearchFilter中找到包含值(任何值)的单元格,并隐藏没有值的行(即NULL)。下面的代码返回strSearchFilter列中与我想要的相反的所有行。

由于

    strSearchFilter += string.IsNullOrEmpty(txtFilterValue.Text) ? " IS NULL" : " NOT LIKE '%" + txtFilterValue.Text + "%'"; 
    }

private void performFilter(string strFilterText)
{
        DataTable table = dataGridView1.DataSource as DataTable;
        if (table != null)
        {
            List<DataRow> filteredRows = new List<DataRow>(table.Select(strFilterText));

            CurrencyManager cm = (CurrencyManager)BindingContext[dataGridView1.DataSource];
            cm.SuspendBinding();
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                row.Visible = filteredRows.Contains(((DataRowView)row.DataBoundItem).Row);
            }
            cm.ResumeBinding();
        }
}

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

我建议使用您希望过滤器应用的列,并使用简单的SQL语法,例如:

MyColumn IS NOT NULL AND MyColumn <> ''

这就是你要找的东西吗?

答案 1 :(得分:0)

您需要撰写以下内容:

strSearchFilter += string.IsNullOrEmpty(txtFilterValue.Text) ? " IS NOT NULL" : " NOT LIKE '%" + txtFilterValue.Text + "%'";