我在我的应用程序中使用SQLite数据库。出于某种原因查询:
UPDATE USERS SET PASSWORD = 'test' WHERE USERNAME = 'Admin'
在控制台中工作(更新PASSWORD字段),但是当我通过代码运行它时:
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
该函数始终返回false,并且不更新数据库。这是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
我在这里做错了什么?我创建新行的代码工作正常,但更新不是。
是的,我知道这是不安全的,我原本有一堆更多的安全检查,但我需要至少让它在这之前工作。
答案 0 :(得分:0)
出于某种原因,sqlite3.dll没有随应用程序一起移动到输出文件夹,导致奇怪的行为并最终导致查询失败。
当我将dll的副本放入输出文件夹时,一切正常。