Bitwise comparison in RowFilter expressions

M

Mark Rae

Hi,

This isn't *specifically* an ASP.NET question, so I've also posted it in the
ADO.NET group - however, it's not too far off-topic...

Imagine a SQL Server 2005 database with a table with an int column used for
bitwise data - you know the sort of thing... 0, 1, 2, 4, 8, 16 etc

intBitwise strName
----------------------
512 Mark
512 Juan
514 Ken
512 Peter
512 Marina

In T-SQL, the following query:

SELECT * FROM tblBitwise WHERE intBitwise & 2 = 2

returns, of course, only the third record from the table.

However, in C#, the following doesn't work:

<DataSet>.Tables[0].DefaultView.RowFilter = "intBitwise & 2 = 2";

The error message is: "The expression contains unsupported operator '&'.

Fair enough - there are loads of other ways to achieve the desired result.
However, I am now curious about RowFilter expressions and bitwise
operators...

A quick trawl through Google returns sites which say that bitwise operators
aren't supported in RowFilter expressions:
https://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=262068&SiteID=1

And others which imply that they are:
http://66.102.9.104/search?q=cache:...ew+RowFilter+bitwise&hl=en&gl=uk&ct=clnk&cd=2

So, can anyone please confirm whether bitwise operators are or are not
supported in RowFilter expressions...?

Any assistance gratefully received.

Mark
 
M

Miha Markic [MVP C#]

I don't think bitwise ops are supported as DataColumn.Expression (used for
filters) isn't exactly too rich.
OTOH you could create additional column in datatable, compute manually
bitwise results and store them in this column. Then you can filter on it.
 
M

Mark Rae

I don't think bitwise ops are supported as DataColumn.Expression (used for
filters) isn't exactly too rich.
OK.

OTOH you could create additional column in datatable, compute manually
bitwise results and store them in this column. Then you can filter on it.

Yes I know...
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Top