chrillelundmark
chrillelundmark

Reputation: 345

DataColumn.Expression RowFilter on Dataview

Maybe this is stupid question or maybe I have designed my code completely wrong but anyhow, here is my question...

I have a "dynamic" sql-query where its impossible to take all the parameters i need for making the query parameterized, therefore i get my data and put it in a dataview and after that i search for the rows I want to show in the dataview.

One of the columns are a column named id. Id is primary key and auto_increment in the table and therefore it's an int.

Now to my question, i want to present all my matching id with the number the user put in my textbox. Let us say my id consist of 5 numbers and the user put the 4 first, then in the perfect world i would have 10 matches (12340-12349 as an example). Doing this on a string is very easy using RowFilter and the operator LIKE combined with a wildcard. But how can i do something similar on integers? Do i have to convert it to strings and wont that ruin the rowfilter expression?

Not a live or death-situation... im more curious if the ice im walking is very thin... :)

Upvotes: 2

Views: 427

Answers (1)

Yuriy Galanter
Yuriy Galanter

Reputation: 39817

Rowfilter expression supports CONVERT function, so technically you can convert your integer ID to string to do the LIKE command:

MyDataView.RowFilter = "Convert(ID, 'System.String') LIKE '1234*'";

But do try to offload the filtering to backend. It's unlikely that you have unlimited number of parameters and SQL is very flexible in allowing you different combinations.

Upvotes: 2

Related Questions