Неправильная синтаксическая ошибка рядом,
Недавно я изменил свою базу данных с доступа к.mdf, и теперь у меня возникают проблемы с получением моего кода для работы.
Одна из проблем, с которыми я сталкиваюсь, это ошибка "неправильный синтаксис рядом".
Я пробовал разные способы исправить это, например, заключив скобки в скобки, переставив запятую, вставив пробелы, убрав пробелы, но я просто не могу их получить.
Я был бы очень благодарен, если бы кто-нибудь мог мне помочь.
Мой код:
SqlStr = "INSERT INTO UserTimeStamp ('username', 'id') SELECT ('username', 'id') FROM Staff WHERE password = '" & passwordTB.Text & "'"
3 ответа
Если вы ищете столбцы username и id, то это неправильный синтаксис SQL.
Основные проблемы заключаются в том, что имена столбцов заключены в одинарные кавычки и в круглые скобки. Попробуйте изменить это на это:
SqlStr = "INSERT INTO UserTimeStamp (username, id) SELECT username, id FROM Staff WHERE password = '" & passwordTB.Text & "'"
Это будет отправлено в SQL следующим образом:
INSERT INTO UserTimeStamp (username, id)
SELECT username, id
FROM Staff
WHERE password = 'some password'
Попробуйте заключить имена столбцов в квадратные скобки следующим образом:
INSERT INTO employee ([FirstName],[LastName]) SELECT [FirstName],[LastName] FROM Employee where [id] = 1
Редактировать: также удалите скобки, окружающие выбранные поля.
Есть ряд проблем, которые я потенциально вижу.
Имена столбцов не должны заключаться в кавычки, то есть INTO UserTimeStamp('username','id') должно быть INTO UserTimeStamp(username, id)
Поля столбцов, кроме литеральных строк, также не должны заключаться в кавычки. т.е. SELECT ('username','id') должен быть SELECT username, id.
Вы подвергаете себя риску внедрения T-SQL, цитируя свой параметр таким образом. Вам следует рассмотреть возможность использования хранимой процедуры или использования хорошо протестированной функции для защиты ваших параметров, если вы выполняете специальные запросы.
SqlStr = "INSERT INTO UserTimeStamp (имя пользователя, id) ВЫБЕРИТЕ имя пользователя, id ИЗ персонала, ГДЕ пароль = " + MyQuoteFunction(passwordDB.Text);