vb.net中的sqlite,即使它存在也找不到表

MaQ*_*eod 2 vb.net sqlite

我正在使用以下代码(VB.net 中的 System.Data.SQLite):

        Dim SQLconnect As New SQLite.SQLiteConnection()
        Dim SQLcommand As SQLiteCommand
        SQLconnect.ConnectionString = "Data Source=vault.db;"
        SQLconnect.Open()
        SQLcommand = SQLconnect.CreateCommand
        SQLcommand.CommandText = "INSERT INTO entries VALUES ('" & appinput.Text & "','" & userinput.Text & "','" & passinput.Text & "')"
        SQLcommand.ExecuteNonQuery()
        SQLcommand.Dispose()
        SQLconnect.Close()
        Me.Hide()
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息,说它找不到表“条目”我知道该表存在,因为我可以通过命令行通过 sqlite 和 Autoit 写入它,并且可以在 SQLite 浏览器中查看和编辑它打开数据库。我不明白为什么 VB 看不到它(我知道它可以很好地看到并打开数据库文件)。有任何想法吗?

Jam*_*son 5

您的问题很可能出在相对路径(目录)上。

如果数据库文件不存在,sqlite 将创建一个数据库文件,因此您永远不会收到“找不到数据库文件的消息”。不正确路径的第一个迹象是“表丢失”。

我的个人经验是,尽管这违背了我的程序员的直觉,但始终为 sqlite 数据库使用绝对(完全限定)路径/文件名。

如果您放入完整的文件位置,例如“/var/myapp/vault.db”,您应该没问题。如果这可能会四处走动,从属性/配置文件中提取文件名——“未找到配置文件”比“未找到表”更容易处理。