Я использую базу данных SQLite в своем приложении. По какой-то причине запрос:SQLite update query работает в консоли, а не в .Net
UPDATE USERS SET PASSWORD = 'test' WHERE USERNAME = 'Admin'
работы в консоли (обновляет поле ПАРОЛЬ), но когда я запускаю его с помощью кода:
Dim exec As String = "UPDATE USERS SET PASSWORD = '" & password & "' WHERE USERNAME = '" & username & "'"
Dim returnCode As [Boolean] = True
Try
ExecuteNonQuery(exec)
Catch
returnCode = False
End Try
Return returnCode
Функция всегда возвращает ложь, и база данных не обновляется , Вот метод ExecuteNonQuery:
Public Shared Function ExecuteNonQuery(sql As String) As Integer
Dim cnn As New SQLiteConnection(dbConnection)
cnn.Open()
Dim mycommand As New SQLiteCommand(cnn)
mycommand.CommandText = sql
Dim rowsUpdated As Integer = mycommand.ExecuteNonQuery()
cnn.Close()
Return rowsUpdated
End Function
Что я здесь делаю неправильно? Мой код для создания новой строки отлично работает, но обновления нет.
Да, я знаю, что это небезопасно, изначально у меня было больше проверок безопасности, но мне нужно хотя бы заставить его работать, прежде чем это делать.
Мое первое предположение, что вы подключены/подключены к неправильной базе данных. –
Это не может быть так, так как мои другие методы для добавления новых строк работают нормально. – TheRyan722
Dont concat SQL; используйте параметры SQL - попробуйте имя пользователя 'D'Angelo Barksdale' и не храните пароли в виде открытого текста. Также Пароль является зарезервированным словом и должен быть экранирован – Plutonix