我创建了一个简单的(商业)WPF应用程序,并希望将其与可以安装在客户本地计算机上的数据库一起分发。
哪种数据库最好用?
我正在考虑SQL Server Epress Edition 2008.我知道10 GB的限制,但这已经足够了,没有问题。
我唯一没有选择100%Express的是因为我不知道如何让我的客户备份数据库。
我的同事一直告诉我使用MS Access,但我不知道这是不是一个好选择,因为我想使用存储过程和视图。
请让我知道你在用什么,或者你可以告诉我......
答案 0 :(得分:6)
SQLite是一个很好的选择。有一个由System.Data.SQLite
开发的ADO.NET提供程序还有一个体面的,免费的SQLite编辑器:SQLite Administrator
备份就像复制SQLite db文件一样简单。真。
答案 1 :(得分:5)
估算的数据量是多少?
对于小型数据库,SQLite可能是一个不错的选择 - 它轻巧,快速,开源并且不需要额外的软件。如果你需要,它甚至支持加密。
备份非常简单,因为SQLite数据库由单个文件组成。
Ruutert:数据库大小高达500 MB:
对于SQLite来说,这个大小应该没问题。我们使用高达数GB的数据库。只有大数据库的问题是,真空(如reorg / compress未使用的空间)需要的时间越长,数据库就越大(但对于其他数据库类型则相同)
Ruutert:SQLite的缺点?
您可能会遇到高并发(许多并行数据库访问)的问题。如果您的工作负载是如此,那么我会考虑面向客户端 - 服务器的数据库管理器,您考虑将数据库管理器移动到另一台服务器 - 从应用程序服务器分离。
但是当您考虑使用功能有限的SQL Server Express或MS-Access时,这应该不是问题。另一方面,你的优点是你只需要一个小的dll(或者将它静态编译成你自己的一个),而不是安装一个完整的数据库管理器。
答案 2 :(得分:4)
嵌入式数据库(如SQLite,其他人已经提到过)已经成为您的正确选择。
既然你正在使用.net,那么微软的SQL Server Compact怎么样呢? (也是一个嵌入式数据库)
答案 3 :(得分:3)
SQL-CE不包含存储过程。
您可以随时查看NoSQL或OO数据库:
请注意,其中一些可能需要单独的DLL才能在.NET代码中公开提供程序。