使用C#控制台应用程序,我有一行:
rowsFound = tempUsers.Select("EmailAddress = '" + userData[2].ToString() + "'");
rowsFound
是DataRow[]
,tempUsers
是DataTable
,userData
是SqlDataReader
。我有userData
的错误索引(它是1),我收到了这个错误:
System.Data.SyntaxErrorException was unhandled
Message=Syntax error: Missing operand after 'Bannon' operator.
Source=System.Data
StackTrace:
at System.Data.ExpressionParser.Parse()
at System.Data.DataExpression..ctor(DataTable table, String expression, Type type)
at System.Data.Select..ctor(DataTable table, String filterExpression, String sort, DataViewRowState recordStates)
at System.Data.DataTable.Select(String filterExpression)
当我插入正确的索引(2)时,错误就消失了。
关于什么是“Bannon算子”的任何想法?
答案 0 :(得分:25)
那个人可能被称为O'Bannon
(= userData[1]
),导致以下字符串:
EmailAddress = 'O'Bannon'
以下Stackoverflow问题包含有关如何正确转义DataTable.Select
中使用的数据的指南:
关于单引号,您只需要复制它们:'
- > ''
。
答案 1 :(得分:8)
userData[1].ToString()
可能类似于Bobby' Bannon
答案 2 :(得分:1)
请参阅此link。 Bannon来自UserData[2].ToString()