Ошибка "Отсутствует операнд после оператора" Bannon "- что такое оператор" Bannon "?
Работая с консольным приложением С#, у меня есть строка:
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), ошибка исчезла.
Любые идеи о том, что такое "оператор Баннона"?
Ответы
Ответ 1
Этот парень, вероятно, был вызван O'Bannon
(= userData[1]
), в результате получилась следующая строка:
EmailAddress = 'O'Bannon'
Следующий вопрос Stackoverflow содержит руководство по правильному удалению данных, используемых в DataTable.Select
:
Что касается одиночных кавычек, вам просто нужно их дублировать: '
→ ''
.
Ответ 2
userData[1].ToString()
был, вероятно, что-то вроде Bobby' Bannon
Ответ 3
См. ссылку . Bannon происходит либо из UserData[2].ToString()