【发布时间】:2010-09-10 18:07:23
【问题描述】:
我有点想在 C#.Net 中使用 SQLite,但我似乎找不到合适的库。有吗?官方的?除了包装器之外,还有其他使用 SQLite 的方法吗?
【问题讨论】:
-
这是这个问题的副本:stackoverflow.com/questions/26020/… 并且有不同的答案。
-
实际上,我相信两个接受的答案都链接到同一个项目。
我有点想在 C#.Net 中使用 SQLite,但我似乎找不到合适的库。有吗?官方的?除了包装器之外,还有其他使用 SQLite 的方法吗?
【问题讨论】:
来自https://system.data.sqlite.org:
System.Data.SQLite 是 SQLite 的 ADO.NET 适配器。
System.Data.SQLite 由 Robert Simpson 创立。 Robert 仍然拥有此存储库的提交权限,但不再是活跃的贡献者。开发和维护工作现在主要由 SQLite 开发团队执行。 SQLite 团队致力于长期支持 System.Data.SQLite。
“System.Data.SQLite 是原始的 SQLite 数据库引擎和一个完整的 ADO.NET 2.0 提供程序,所有这些都集成到一个混合模式程序集中。它是原始 sqlite3.dll 的完整替代品(您甚至可以将其重命名为 sqlite3.dll)。与普通的混合程序集不同,它不依赖于 .NET 运行时的链接器,因此可以独立于 .NET 进行分发。”
它甚至支持单声道。
【讨论】:
【讨论】:
现在还有这个选项:http://code.google.com/p/csharp-sqlite/ - SQLite 到 C# 的完整端口。
【讨论】:
来自 sqlite.org 的人已经接管了 ADO.NET 提供程序的开发:
这是流行的 ADO.NET 的一个分支 SQLite 的 4.0 适配器,称为 System.Data.SQLite。的发起人 System.Data.SQLite,罗伯特辛普森,是 意识到这个叉子,表达了他的 批准,并具有提交权限 新的化石存储库。 SQLite 开发团队打算维护 System.Data.SQLite 向前发展。
历史版本,以及 原始支持论坛,可能仍然是 发现于 http://sqlite.phxsoftware.com,虽然 没有更新 自 2010 年 4 月以来的版本。
可在on their wiki 找到完整的功能列表。亮点包括
已发布的 DLL 可以直接从the site 下载。
【讨论】:
我肯定会选择 System.Data.SQLite(如前所述:http://sqlite.phxsoftware.com/)
它与 ADO.NET (System.Data.*) 一致,并被编译成单个 DLL。没有 sqlite3.dll - 因为 SQLite 的 C 代码嵌入在 System.Data.SQLite.dll 中。一点托管的 C++ 魔法。
【讨论】:
sqlite-net 是一个开源的最小库,允许 .NET 和 Mono 应用程序将数据存储在 SQLite 3 databases 中。更多信息请访问wiki page。
它是用 C# 编写的,旨在与您的项目一起简单地编译。它最初是为在 iPhone 上与 MonoTouch 一起工作而设计的,但已经成长为可以在所有平台上工作(Mono for Android、.NET、Silverlight、WP7、WinRT、Azure 等)。
它以Nuget package 的形式提供,截至 2014 年,它是第二大最受欢迎的 SQLite 包,下载量超过 60,000。
sqlite-net 被设计为一个快速方便的数据库层。它的设计遵循以下目标:
非目标包括:
【讨论】:
Mono 带有一个包装器。 https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 提供代码以以 .net 友好的方式包装实际的 SQLite dll(在下载页面 http://www.sqlite.org/download.html/ 上找到的 http://www.sqlite.org/sqlite-shell-win32-x86-3071300.zip)。它适用于 Linux 或 Windows。
这似乎是世界上最薄的,最大限度地减少了您对第三方库的依赖。如果我必须从头开始做这个项目,我会这样做。
【讨论】:
Microsoft 现在提供 Microsoft.Data.Sqlite 作为 .NET 的第一方 SQLite 解决方案,它作为 ASP.NET Core 的一部分提供。许可证是Apache License, Version 2.0。
* 免责声明:我自己还没有真正尝试过使用它,但是 Microsoft Docs here 上提供了一些文档,用于将它与 .NET Core 和 UWP 一起使用。
【讨论】:
对于像我这样不需要或不想要 ADO.NET 的人,那些需要运行更接近 SQLite 的代码,但仍然兼容 netstandard(.net 框架、.net 核心等)的人,我在 github 上构建了一个 100% 免费的开源项目,名为 SQLNado(代表“Not ADO”):
https://github.com/smourier/SQLNado
它在https://www.nuget.org/packages/SqlNado 处以 nuget 的形式提供,但也以单个 .cs 文件的形式提供,因此在任何 C# 项目类型中使用都非常实用。
在使用 SQL 命令时支持所有 SQLite 功能,也通过 .NET 支持大部分 SQLite 功能:
【讨论】:
Monotouch 1.2 版包括对 System.Data 的支持。您可以在此处找到更多详细信息: http://monotouch.net/Documentation/System.Data
但基本上它允许您将通常的 ADO .NET 模式与 sqlite 一起使用。
【讨论】:
http://www.devart.com/dotconnect/sqlite/
dotConnect for SQLite 是 SQLite 的增强型数据提供程序,它以 ADO.NET 技术为基础,为开发基于 SQLite 的数据库应用程序提供完整的解决方案。作为 Devart 数据库应用程序开发框架的一部分,dotConnect for SQLite 提供与 SQLite 数据库的高性能本机连接以及许多创新的开发工具和技术。
dotConnect for SQLite 引入了用于设计应用程序架构、提高生产力并利用数据库应用程序实施的新方法。
我用的是标准版,效果很好:)
【讨论】:
sqlite 库提供的函数的准系统包装器。最新版本支持sqlite库3.7.10提供的功能
【讨论】: