You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

高版本System.Data.SQLite打开低版本加密SQLite数据库遇异常求助

解决方案

一、在新项目中使用旧版本System.Data.SQLite

NuGet官方源虽已移除1.0.112及以下版本,但可通过本地安装方式获取:

  • 从System.Data.SQLite的官方GitHub发布归档中找到v1.0.106版本的.nupkg包(需匹配.NET Framework 4.7环境)。
  • 在VS2022中添加本地包源:依次点击「工具」→「NuGet包管理器」→「包管理器设置」→「包源」→「添加」,选择存放.nupkg文件的文件夹。
  • 回到项目的NuGet包管理器,切换至本地包源,搜索并安装v1.0.106版本的System.Data.SQLite,即可沿用原有代码正常打开数据库。

二、用新版System.Data.SQLite兼容旧加密数据库

新版(v1.0.115+)默认移除了旧版免费加密实现,需通过以下方式兼容:

方案1:改用SQLitePCLRaw组件

SQLitePCLRaw支持旧版SQLite加密格式,操作步骤:

  1. 在NuGet中安装SQLitePCLRaw.core和SQLitePCLRaw.bundle_e_sqlcipher包。
  2. 调整代码如下:
using SQLitePCL;

// 初始化组件
Batteries_V2.Init();

// 打开数据库并设置密钥
var dbHandle = SQLite3.Open("customDB.sqlite");
SQLite3.Key(dbHandle, "你的数据库密码");

// 示例:执行查询
using (var stmt = SQLite3.Prepare(dbHandle, "SELECT * FROM 表名"))
{
    while (SQLite3.Step(stmt) == SQLite3.Result.Row)
    {
        // 处理查询结果
    }
}

方案2:避免使用商业SEE组件

报错提示的System.Data.SQLite.SEE.License是商业加密组件的许可证文件,若不想使用商业版,此路径无法兼容旧加密数据库,不推荐。


内容的提问来源于stack exchange,提问作者Marcus Aurelius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 11:50:22