【C#】.NET Framework 4.8环境下使用Sqlite的问题总结

问题1:使用System.Data.Sqlite.dll出现不存在e_sqlite3.dll提示

csharp 复制代码
无法加载 DLL"e_sqlite3": 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。

csharp 复制代码
Exception: Library e_sqlite3 not found

问题2:使用System.Data.Sqlite.Core.dll出现找不到Sqlite入口

问题3:使用Microsoft.Data.Sqlite.dll提示一个错误

csharp 复制代码
Microsoft.Data.Sqlite.SqliteConnection"的类型初始值设定项引发异常

问题4:错误提示如下,因为这个问题弃用了System.Data.Sqlite转而使用Microsoft.Data.Sqlite(这个问题需要切换x86或者x64构建项目,但是同时也会修改生成目标位置,所以不使用这个了)

csharp 复制代码
You need to call SQLitePCL.raw.SetProvider().  If you are using a bundle package, this is done by calling SQLitePCL.Batteries.Init()

上述所有问题的解决方案是

使用NuGet包有

1.ClosedXML(免费第三方可商用导出Excel,不需要则不用管)

2.Microsoft.Data.Sqlite(会自动安装依赖Microsoft.Data.Sqlite.Core)

3.SQLitePCLRaw.bundle_winsqlite3(解决e_sqlite3的问题,注意名称不要安装错误)

4.System.Memory (本身会自动安装,但是版本一定要是4.5.5的,对应问题3)

一段使用实例:

csharp 复制代码
public DataTable ExportDataTableToExcel(string dbPath, string queryString)
{
    var dataTable = new DataTable();

    // 创建连接字符串并建立连接
    var connectionString = $"Data Source={dbPath}";
    using (var connection = new SqliteConnection(connectionString))
    {
        if(connection.State != ConnectionState.Open)
        {
            connection.Open();
        }

        // 创建命令并执行查询
        using (var command = new SqliteCommand(queryString, connection))
        {
            // 使用 SqliteDataReader 读取数据
            using (SqliteDataReader reader = command.ExecuteReader())
            {
                // 将查询结果加载到 DataTable 中
                dataTable.Load(reader);
            }
        }
    }

    return dataTable;
}

完结!(.net 8没发现这么多毛病,以前用.net4.8也没发现有这么多问题。)

相关推荐
Scout-leaf18 小时前
WPF新手村教程(三)—— 路由事件
c#·wpf
用户2986985301421 小时前
程序员效率工具:Spire.Doc如何助你一键搞定Word表格排版
后端·c#·.net
牧马人win1 天前
SmartDapper.Repository
.net
mudtools2 天前
搭建一套.net下能落地的飞书考勤系统
后端·c#·.net
玩泥巴的2 天前
搭建一套.net下能落地的飞书考勤系统
c#·.net·二次开发·飞书
唐宋元明清21882 天前
.NET 本地Db数据库-技术方案选型
windows·c#
lindexi3 天前
dotnet DirectX 通过可等待交换链降低输入渲染延迟
c#·directx·d2d·direct2d·vortice
百锦再3 天前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip
qq_454245033 天前
基于组件与行为的树状节点系统
数据结构·c#
bugcome_com3 天前
C# 类的基础与进阶概念详解
c#