WPF应用程序中的数据库功能:SQLite、SQL CE或其他?

33

我想在WPF应用程序中增加数据库功能。你会推荐哪个数据库引擎?为什么?SQLite、SQL CE还是其他?

6个回答

23

根据应用的使用情况,我建议使用SQL Lite,因为它不需要安装任何其他软件(SQL CE或Express等通常需要单独安装)。

下面是提供者链接中列出的SQL Lite的最重要的优点:

SQLite是一个小型的C库,实现了一个自包含、可嵌入、零配置的SQL数据库引擎。主要特性包括:

  • 零配置 - 不需要设置或管理。
  • 实现了大多数SQL92标准。(不支持的特性)
  • 一个完整的数据库存储在一个单独的磁盘文件中。
  • 可以在具有不同字节顺序的计算机之间自由共享数据库文件。
  • 支持高达2TB(2^41字节)大小的数据库。
  • 代码占用空间小:不到30K行的C代码,小于250KB的代码空间(i486上的gcc)。
  • 对于大多数常见的操作,比流行的客户端/服务器数据库引擎更快。
  • 简单易用的API。
  • 自包含:没有外部依赖。
  • 源码为公共领域。可用于任何目的。

由于您正在使用WPF,我可以假设您至少在使用.NET 3.0。然后,我建议升级到.NET 3.5 SP1(与.NET 3.5大小相同,但包括许多性能改进),其中包括LINQ。

但是,当使用SQLite时,您需要使用以下SQLite提供程序,它应该提供LINQ支持:SQLite数据库引擎的开放源代码ADO.NET提供程序


42
SQL Server Compact Edition不需要单独安装,就像SQL Lite一样,该数据库是一个单独的文件。 - Brad Leach
5
根据性能测试(http://www.codeproject.com/Articles/220131/Benchmarking-the-performance-of-embedded-DB-for-Ne) ,SQL Lite其实并不更快!你应该将列表中的项目删除以免误导读者。 - Alexander Vasilyev
一个用于SQLite数据库引擎的开源ADO.NET提供程序链接已经不存在了。 - Ghasem
@BradLeach 当然需要单独安装SqlCE。它非常快速和简便。 - Ghasem
7
SQL Server Compact Edition不需要安装,因为它可以与您的应用程序一起私密交付。我们采用这种方法来避免它出现在“添加/删除程序”列表中。http://erikej.blogspot.com/2011/02/using-sql-server-compact-40-with.html - Matt Davis
显示剩余2条评论

19

我在我的WPF应用程序中使用了SQL Compact Edition,对于我的决定感到满意。一切都很顺利(因为WPF和SQLCE都是微软的产品,它们相互协作得很好),而且运行时的安装大小和流程都符合我的需求。我通过Visual Studio创建和修改了数据库。


9

仅提出不同的观点,我们过去一年一直在使用SQL Compact Edition,并且一般来说对它很满意。配置非常简单,行为与常规MS SQL数据库非常相似。虽然有一些缺失,例如触发器和存储过程,但是SQL 3.5 CE几乎包含了我们需要的所有其他功能。安装时只需2MB的.dll文件。它提供数据库加密、事务处理,并支持VS的类型化数据集设计器(3.1版本存在一些问题,但CE 3.5非常好!)。


3

SQL CE DLLs可以打包到您自己的应用程序中,无需单独安装。 但是如果您不想学习设置等内容,Microsoft提供了默认的安装包。

此外,SQL CE支持私有部署。


2

SQLite是一个非常好的产品,虽然我错过了PostgreSQL的一些功能。还有其他一些特别是非SQL的数据库,你可能需要考虑像Berkeley DB。

/Allan


0

我认同SQLite是一个不错的选择。 Subsonic 2.1现在也支持SQLite了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接