在 VB.net 中打开 SQLite 连接时出现问题

Problem Opening SQLite Connection in VB.net

提问人:Carl 提问时间:2/5/2023 最后编辑:nbkCarl 更新时间:2/5/2023 访问量:194

问:

我正在尝试学习SQLLite(使用SQL Server的应用程序的多年经验)。我走得很慢,马上就无法打开与在SQLite Studio中创建的数据库的连接。我尝试了许多不同的例子,但没有运气。我首先尝试使用 Nuget 包,然后转到 SQLite 网站并下载了 .Net 4.5 的 64 位二进制文件。无论我尝试什么,我都会收到此错误:系统。BadImageFormatException。

有人可以告诉我我做错了什么,或者给我指出一个真正有效的例子吗?

谢谢!!!

Imports System.Data.SQLite

Public Class Form1

    Private connectionstring As String

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Dim exePath As String = System.IO.Path.GetDirectoryName(Application.ExecutablePath)
        Dim dbPath As String = exePath & "\NamesTest.db"

        connectionstring = "Data Source=" & dbPath

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click


        Dim SQLiteConn As New SQLiteConnection(connectionstring)
        SQLiteConn.Open()
    End Sub

End Class
数据库 vb.net SQLite

评论

1赞 Steve 2/5/2023
通常,BadImageFormatException 是由应用程序的位数与库的位数不兼容引起的。如果您有 64 位版本的 SQLite,则您的应用程序应与 AnyCPU 或 x64 匹配。
0赞 nbk 2/5/2023
您是否测试过这些 connectionstrings.com/sqlite 之一
0赞 jmcilhinney 2/5/2023
当你可以使用时,使用有点傻。此外,还应该使用该类来组合部分路径:.Path.GetDirectoryName(Application.ExecutablePath)Application.StartupPathPathDim dbPath = Path.Combine(Application.StartupPath, "NamesTest.db")
1赞 Mark Benningfield 2/5/2023
除了@Steve所说的之外,如果您使用“AnyCPU”进行编译,请确保项目属性页中的“首选 32 位”标志处于关闭状态。
0赞 Carl 2/5/2023
谢谢大家。关闭“首选 32 位”将停止错误消息并打开数据库。我做了一个简单的选择查询来获取我的一个表中的所有行,并使用数据读取器读取它们。我同意我获取数据库路径的方式是“愚蠢的”。我将把代码改成suggessted,这样我就不会傻:)问题解决了!!!

答: 暂无答案