.NET BindingSource Filter syntax reference

2019-04-21 08:34发布

问题:

You can use the Filter property of a BindingSource to do SQL like filtering. For example:

bindingSource.Filter= "Activated = 1"

Is there something like documentation on the exact syntax of this?

I would like to check if a field is not DBNull, so i tried "Field != NULL" but it gives a syntax error.

回答1:

The syntax is generally the same as what would you would use in a SQL Where clause, without the "Where", so in this case, it would be

  bindingSource.Filter = "Field <> NULL";

If you look at msdn docs for BindingSource.Filter you will see this:

"To form a filter value, specify the name of a column followed by an operator and a value to filter on. The accepted filter syntax depends on the underlying data source. If the underlying data source is a DataSet, DataTable, or DataView, you can specify Boolean expressions using the syntax documented for the DataColumn..::.Expression property."

Follow that link to see all the detailed rules



回答2:

Have a look at this msdn article. The described syntax should be valid for your BindingSource, too.



回答3:

What worked for me was

bindingSource.Filter = "columnName Is Null";

or conversely

bindingSource.Filter = "columnName Is Not Null";


回答4:

When Filter is not null a null reference, the BindingSource passes this property to the underlying list.

If you're bound to a DataTable or a DataView, the syntax would be the one available at DataColumn.Expression Property.