270

我有点想在 C#.Net 中使用 SQLite,但我似乎找不到合适的库。有吗?官方的?除了使用包装器之外,还有其他使用 SQLite 的方法吗?

4

12 回答 12

329

来自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 进行分发。”

它甚至支持单声道。

于 2008-09-18T15:38:08.190 回答
32

以下是我能找到的:

资料来源:

于 2008-09-18T15:39:05.630 回答
26

现在还有这个选项:http ://code.google.com/p/csharp-sqlite/ - SQLite 到 C# 的完整端口。

于 2009-08-07T15:15:10.810 回答
15

sqlite.org 的人已经接管了 ADO.NET 提供程序的开发:

他们的主页

这是用于 SQLite 的流行 ADO.NET 4.0 适配器的一个分支,称为 System.Data.SQLite。System.Data.SQLite 的创始人罗伯特·辛普森(Robert Simpson)知道这个分叉,并表示同意,并在新的 Fossil 存储库上拥有提交权限。SQLite 开发团队打算继续维护 System.Data.SQLite。

历史版本以及原始支持论坛仍可在 http://sqlite.phxsoftware.com上找到,尽管自 2010 年 4 月以来此版本没有更新。

完整的功能列表可以在他们的 wiki 上找到。亮点包括

  • ADO.NET 2.0 支持
  • 完整的实体框架支持
  • 完全单声道支持
  • Visual Studio 2005/2008 设计时支持
  • 紧凑的框架,C/C++ 支持

已发布的 DLL 可以直接从该站点下载。

于 2011-03-21T08:28:16.217 回答
8

我肯定会选择System.Data.SQLite(如前所述:http ://sqlite.phxsoftware.com/ )

它与 ADO.NET (System.Data.*) 一致,并被编译为单个 DLL。没有 sqlite3.dll - 因为 SQLite 的 C 代码嵌入在 System.Data.SQLite.dll 中。一点托管的 C++ 魔法。

于 2009-01-25T14:06:14.127 回答
7

sqlite-net是一个开源的最小库,允许 .NET 和 Mono 应用程序将数据存储在SQLite 3 数据库中。更多信息请参见 wiki 页面

它是用 C# 编写的,旨在与您的项目一起简单地编译。它最初是为在 iPhone 上与 MonoTouch 一起工作而设计的,但已经成长为可以在所有平台上工作(Mono for Android、.NET、Silverlight、WP7、WinRT、Azure 等)。

它以Nuget 包的形式提供,截至 2014年,它是第二大最受欢迎的 SQLite 包,下载量超过 60,000。

sqlite-net 被设计为一个快速方便的数据库层。它的设计遵循以下目标:

  • 很容易与现有项目和 MonoTouch 项目集成。
  • SQLite 上的瘦包装器,应该快速高效。(库不应成为查询的性能瓶颈。)
  • 用于安全执行 CRUD 操作和查询(使用参数)并以强类型方式检索这些查询结果的非常简单的方法。
  • 与您的数据模型一起工作,而不会强迫您更改您的类。(包含一个小的反射驱动 ORM 层。)
  • 除了 sqlite2 库的编译形式之外,还有 0 个依赖项。

非目标包括:

  • 不是ADO.NET 实现。这不是一个完整的 SQLite 驱动程序。如果需要,请使用 System.Data.SQLite。
于 2014-10-24T01:14:30.843 回答
2

Mono 带有一个包装器。https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0提供了包装实际 SQLite dll 的代码(http://www.sqlite. org/sqlite-shell-win32-x86-3071300.zip以 .net 友好的方式在下载页面http://www.sqlite.org/download.html/上找到。它适用于 Linux 或 Windows。

这似乎是所有世界中最薄的,最大限度地减少了您对第三方库的依赖。如果我必须从头开始做这个项目,我会这样做。

于 2012-07-25T22:34:39.940 回答
2

Microsoft.Data.Sqlite

Microsoft 现在提供Microsoft.Data.Sqlite作为 .NET 的第一方 SQLite 解决方案,它作为 ASP.NET Core 的一部分提供。许可证是Apache 许可证,版本 2.0

*免责声明:我自己还没有真正尝试过使用它,但是这里的 Microsoft Docs 上提供了一些文档,用于将它与 .NET Core 和 UWP 一起使用。

于 2017-04-25T00:48:04.563 回答
2

对于像我这样不需要或不想要 ADO.NET 的人,那些需要运行更接近 SQLite 的代码,但仍兼容netstandard(.net 框架、.net 核心等)的人,我构建了一个100% 免费的开源项目SQLNado(代表“Not ADO”)在 github 上可用:

https://github.com/smourier/SQLNado

它在https://www.nuget.org/packages/SqlNado作为 nuget 提供,但也作为单个 .cs 文件提供,因此在任何 C# 项目类型中使用都非常实用。

它在使用 SQL 命令时支持所有 SQLite 功能,并且还通过 .NET 支持大多数 SQLite 功能:

  • 自动类到表映射(Save、Delete、Load、LoadAll、LoadByPrimaryKey、LoadByForeignKey 等)
  • 在类和现有表之间自动同步模式(表、列)
  • 专为线程安全操作而设计
  • 支持 Where 和 OrderBy LINQ/IQueryable .NET 表达式(该领域的工作仍在进行中),还支持排序规则
  • 暴露给 .NET 的 SQLite 数据库架构(表、列等)
  • SQLite 自定义函数可以用 .NET 编写
  • SQLite 增量 BLOB I/O 公开为 .NET Stream 以避免高内存消耗
  • SQLite 排序规则支持,包括使用 .NET 代码添加自定义排序规则的可能性
  • SQLite 扩展 (.dll) 加载支持
  • SQLite 全文搜索引擎 (FTS3) 支持,包括使用 .NET 代码添加自定义 FTS3 标记器的可能性(例如本地化停用词)。我不相信任何其他 .NET 包装器会这样做。
  • 自动支持 Windows 'winsqlite3.dll'(仅在最近的 Windows 版本上)以避免传送任何二进制依赖文件。这也适用于 Azure Web 应用程序!
于 2018-02-25T07:56:53.023 回答
0

Monotouch 1.2 版包括对 System.Data 的支持。您可以在此处找到更多详细信息:http: //monotouch.net/Documentation/System.Data

但基本上它允许您将通常的 ADO .NET 模式与 sqlite 一起使用。

于 2009-11-08T10:58:27.243 回答
0

http://www.devart.com/dotconnect/sqlite/

dotConnect for SQLite 是 SQLite 的增强型数据提供程序,它建立在 ADO.NET 技术之上,为开发基于 SQLite 的数据库应用程序提供完整的解决方案。作为 Devart 数据库应用程序开发框架的一部分,dotConnect for SQLite 提供了与 SQLite 数据库的高性能本机连接以及许多创新的开发工具和技术。

dotConnect for SQLite 引入了设计应用程序架构的新方法,提高了生产力,并利用了数据库应用程序实施。

我用的是标准版,效果很好:)

于 2010-12-17T11:19:24.750 回答
0

sqlite 库提供的函数的准系统包装器。最新版本支持sqlite库3.7.10提供的功能

SQLiteWrapper 项目

于 2012-01-24T20:33:08.830 回答