Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

DataTable expression Cannot interpret token '!'

I have the following code:

//myDataTable has the following collumns: UserName, Birthday and email.
string name = "eric!";
string expression = "UserName = " + name;
DataRow[] result = myDataTable.Select(expression);

I want to select all rows with the name "eric!".
The "!" gives me the following error:

Cannot interpret token "!".

How can I select all rows with such tokens?
(I really need the "!" in the expression since I extract the userNames from a .sql file)

like image 329
BARJ Avatar asked Feb 08 '14 11:02

BARJ


2 Answers

You should use your name between ''. Like;

string name = "'eric!'";

Without single quotes, your DataTable.Select method thinks that ! is an operator and it is not allowed in DataColumn.Expression property as a valid operator.

From documentation;

User-Defined Values

User-defined values may be used within expressions to be compared with column values. String values should be enclosed within single quotation marks.

like image 94
Soner Gönül Avatar answered Sep 25 '22 15:09

Soner Gönül


You are missing quotes (' ') around your value

string name = "eric!";
string expression = "UserName = '" + name+'";
DataRow[] result = myDataTable.Select(expression);

When you write the filter operator without quotes and with !, it will consider ! as not operator that's why it gives the error.

like image 33
Sachin Avatar answered Sep 24 '22 15:09

Sachin