有没有人能帮我弄明白为什么这个工作得很好...
Dim cs = "Data Source=C:\folder\Livros.sdb;Version=3;"
Dim cn = New System.Data.SQLite.SQLiteConnection(cs)
cn.Open() ' no exception
...而打开连接时此文件会断开(它是完全相同的文件)...
Dim cs = "Data Source=\\NetworkServer\folder\Livros.sdb;Version=3;"
Dim cn = New System.Data.SQLite.SQLiteConnection(cs)
cn.Open() ' exception: {"unable to open database file"}
...并修复它,因为我需要将数据库文件放在网络位置,以便无论在哪台计算机上运行应用程序都可以访问它?
非常感谢!
2条答案
按热度按时间q43xntqr1#
好了,通过反复试验,我找到了解决方案,尽管我不太明白它起作用的原因:
如果有人能解释为什么
.ParseViaFramework = True
能做到这一点,请随时发表评论。omvjsjqw2#
这里也提出了类似的问题。
SQLite: Cannot open network file programmatically, even though worked before
最上面的答案给出了更多的修复。链接到这里,因为这是我搜索时出现的第一个堆栈溢出。另外,我使用的是SQLiteConnectionStringBuilder,无法找到设置parseViaFramework的方法,所以第一个解决方案是我需要的。
1.将文件名中的前两个反斜杠加倍(例如“\\network\share\file.db”)。
1.使用Map的驱动器号。
1.使用接受parseViaFramework布尔参数的SQLiteConnection构造函数,并为该参数传递“true”。