我首先有以下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模式= Truncate;默认隔离级别= ReadCommitted;池= True';错误:'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
(如果使用的是本地文件)。
快速检查表明,在SQLiteConnection.cs中DataSource
的评估先于Uri
进行,并且优先于此,因此,如果Uri
处理中存在错误,使用DataSource可能会绕过它。
背景:1.它是一个使用Sqlite databse的C#应用程序2.如果不存在db,则此应用程序将创建一个空的db,并将数据从服务器同步到该数据库。问题:1.有时应用程序突然崩溃。似乎有一些未处理的异常。2.即使我重新启动该应用程序,它也立即崩溃。临时解决方案:1.将数据库复制到其他位置,然后删除原始数据库。2.运行该应用程序。没有崩溃。由于不存在任何数…
Spring Data Cassandra的事务管理 - java我正在使用Spring和Cassandra作为基础数据库。曾提到过弹簧伞项目“ spring data cassandra”。与休眠不同,在这里无法找到如何管理事务。如果您中的某些人已经合并,请共享要包含的事务管理器的详细信息。 参考方案 Cassandra不支持传统(ACID)的事务。在某些特殊情况下,可以通过一些构造来实现事务原子性,例如原子批处理(请参…
SQLite PDO绑定不起作用? - php我觉得我对此一无所知。我有三个简单的表。一个用户表,一个角色表和一个role_user表,该表以多对多关系连接用户和角色。对于用户角色,我有以下代码:$query = $pdo->prepare('select roles.* from roles inner join role_user on roles.id = role_user.ro…
从Azure Data Factory执行python脚本 - python有人可以帮我从Azure数据工厂执行python函数吗?我已经将python函数存储在blob中,并且我试图触发同样的功能。但是我无法做到这一点。请协助。第二,我可以从ADF参数化python函数调用吗? python参考方案 您可能会发现ADF中的Azure Function Activity概念,它允许您在Data Factory管道中运行Azure F…
System.Data.OleDb.OleDbException:INSERT INTO语句中的语法错误 - c#public void RegisterUser(string passw,string uname ,string fname ,string lname, string email) { string strSql = @"INSERT INTO User (passw,uname,fname,lname,email) values (…