通过框架解析 System.Data.SQLite

7
我曾使用 System.Data.SQLite 打开一些位于 UNC 路径下的数据库,所用版本为 1.0.82 并且运行良好。但当升级到 1.0.86 后,突然出现无法打开数据库文件的错误。
经过一段时间的研究,我发现在 SQLiteConnection 构造函数中添加了一个名为 parseViaFramework 的新参数。当我将其设置为 true 时,一切又恢复正常了。
然而,关于此参数的具体作用几乎没有什么信息。我只知道它与连接字符串的解析有关,但这已经是我的极限了。如果我在 Google 搜索中输入 parseViaFramework,只会得到 2 页结果。
请问有人能告诉我这个参数的确切作用吗?
3个回答

3
这个增加的功能是让内置的(即框架提供的)连接字符串解析器在打开连接时使用。显然,这个改变是为了解决这个问题:(链接:http://system.data.sqlite.org/index.html/info/b4cc611998)。(来源
还有一件事我自己也注意到了。当使用ExecuteReader时,你会得到一个“空的reader”,你需要自己做第一个Read()。我认为这是由于升级所致,因为我的代码之前没有问题。也许这是另一件你需要检查的事情。

是的,我在网上已经找到了所有这些。那就是为什么我在这里问的原因。你发布的链接的问题涉及使用带空格的密码。我没有使用密码,因此它肯定不包含空格。我的问题与UNC路径有关(我试图打开的路径也没有空格)。如果没有parseViaFramwork,它就无法打开。绝对没有任何地方提到这个问题。 - Cedric Mamo

0

关于UNC的问题以及在SqliteConnection构造函数中使用parseViaFramework标志的可能解决方案,可以在这里(第一个答案)和那里中找到。


0

这个问题的解决方案在@ranmoro这里提到:

https://dev59.com/P2Qm5IYBdhLWcg3w0R1V#18506097

我的解决方法是通过编辑web.config db文件的连接字符串来实现:

将文件名中前两个反斜杠加倍 (例如"\\network\share\file.db")。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接