Access OLEDB сообщает о «синтаксической ошибке», но утверждение выглядит правильно
Я пишу простую страницу в ASP.net, чтобы обновить пароль в таблице доступа. Вот синтаксис для запроса SELECT, который работает:
Dim dbConn As OleDbConnection
Dim dbCommand As OleDbCommand
Dim dbReader As OleDbDataReader
'Connect to db
dbConn = New OleDbConnection(Application("strConnectionString"))
dbConn.Open()
'Get user info
strSQL = "SELECT * FROM users WHERE Username = '" & strUsername & "';"
dbCommand = New OleDbCommand(strSQL, dbConn)
dbReader = dbCommand.ExecuteReader()
И моя строка подключения:
Application("strConnectionString") = _
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strDBPath & _
"; Jet OLEDB:Database Password=" & strDBPassword & ";"
SELECT работает нормально, поэтому я знаю, что мое соединение в порядке. Но этот запрос дает мне синтаксическую ошибку:
strSQL = "UPDATE users SET Password = '1'"
Со всем остальным то же самое, ошибка ASP говорит, что есть ошибка с моим синтаксисом. Но когда я отвечаю. Пишу строку strSQL, это дает мне следующее:
UPDATE users SET Password = '1'
и когда я вставляю это в редактор запросов в Access, запрос обновляет все поля «Пароль» в таблице до «1», поэтому я знаю, что синтаксис в порядке. Я попробовал это без устройства чтения данных и использования dbCommand.ExecuteNonQuery (), тот же результат.
У меня есть права доступа к файлу Access, так что у всех есть полный контроль, поэтому я не думаю, что это проблема с разрешениями.
Кто-нибудь может увидеть мою ошибку? Я действительно застрял. Благодарю.