问题描述:

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)

网友答案:

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.

网友答案:

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.

相关阅读:
Top