gpt4 book ai didi

c# - 更新 System.Data.SQLite.dll 后 SQLite 无效的 URI

转载 作者:行者123 更新时间:2023-12-03 17:38:33 27 4
gpt4 key购买 nike

我第一次使用这个 SQLite 版本:1.0.77.0 (sqlite-netFx40-static-binary-bundle-Win32-2010-1.0.77.0)一切正常。将我的 System.Data.SQLite.dll 更新到版本 1.0.82.0 (sqlite-netFx40-static-binary-bundle-Win32-2010-1.0.82.0) 后,我现在收到:

无法打开数据库。连接字符串:'datetimeformat=ISO8601;synchronous=Off;uri="file://C:/Users/username/Documents/data/test.db";version=3;journal mode=Truncate;default isolationlevel=ReadCommitted;pooling =真';错误:'System.InvalidOperationException:无效的连接字符串:无效的 URI

我也试过 file:///而不是 file://但没有任何运气。

谁能告诉我我的 URI 有什么问题,为什么它在 v1.0.82.0 中不再工作但在 v1.0.77.0 中工作?

http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki(1.0.82.0 == 3.7.14)

最佳答案

获得正确连接字符串的最佳方法是始终使用 SQLiteConnectionStringBuilder 类来生成它们。

SQLiteConnectionStringBuilder conn_builder = new SQLiteConnectionStringBuilder 
{
DateTimeFormat = SQLiteDateFormats.ISO8601,
SyncMode = SynchronizationModes.Off,
Version = 3,
JournalMode = SQLiteJournalModeEnum.Truncate,
DefaultIsolationLevel = System.Data.IsolationLevel.ReadCommitted,
Pooling = true,
Uri = new Uri(@"c:\tmp\db.sqlite").AbsoluteUri
};
string conn_str = conn_builder.ConnectionString;

如果 Uri 不起作用,请尝试设置 DataSource(如果您使用的是本地文件)。

快速检查显示 DataSourceSQLiteConnection.cs 中的 Uri 之前计算。并优先于它,因此如果 Uri 处理中存在错误,使用 DataSource 可能有助于绕过它。

关于c# - 更新 System.Data.SQLite.dll 后 SQLite 无效的 URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12741186/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com