but the native SQLite library 'e_sqlite3' doesn't support encryption

2021-03-17  乐帮网

sqlite netcore

在net core3中尝试访问加过密的sqlite数据库时会遇到错误:System.InvalidOperationException:“You specified a password in the connection string, but the native SQLite library 'e_sqlite3' doesn't support encryption.”

难道net core 3中不支持访问加密后的sqlite数据库了吗?答案是否定的,它有自己的规范,实现也是肯定的,我们只需要下面三行命令就可以解决问题。

dotnet remove package Microsoft.Data.Sqlite
dotnet add package Microsoft.Data.Sqlite.Core
dotnet add package SQLitePCLRaw.bundle_e_sqlcipher

意思就是重新引入SQLitePCLRaw.bundle_e_sqlciphe包,可在NuGet图形界面操作。另外说一下sqlLite连接字符串,当你不知道有哪些关键字时,可以像下面这样写。

SqliteConnectionStringBuilder sqliteConnection = new SqliteConnectionStringBuilder();
sqliteConnection.Password = "123456";
sqliteConnection.DataSource = dbPath;
sqliteConnection.Mode = SqliteOpenMode.ReadWriteCreate;
using (SqliteConnection conn = new SqliteConnection(sqliteConnection.ConnectionString))
{
	conn.Open();
	var command = conn.CreateCommand();
	command.CommandText = “delete from table1 where id =1”;
	command.ExecuteNonQuery();
}

本文链接

公众号二维码

关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com

庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。

欧阳修

付款二维码

如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力