SQLite更新查询在控制台中工作,而不是在.Net中

时间:2016-01-25 01:43:02

标签: sql database vb.net sqlite

我在我的应用程序中使用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

我在这里做错了什么?我创建新行的代码工作正常,但更新不是。

是的,我知道这是不安全的,我原本有一堆更多的安全检查,但我需要至少让它在这之前工作。

1 个答案:

答案 0 :(得分:0)

出于某种原因,sqlite3.dll没有随应用程序一起移动到输出文件夹,导致奇怪的行为并最终导致查询失败。

当我将dll的副本放入输出文件夹时,一切正常。