该系统应该用C#构建,但我还没有决定应该为这个应用程序使用哪个数据库引擎。你有什么建议?我想到了SQLite,但我需要记住从旧数据库迁移项目到新的更新数据库是必要的。而且由于最初是用MS Access构建的。我应该坚持使用MS Access并用它来构建我的应用程序吗?
编辑:这是一个单用户系统。
如果你想坚持使用微软技术,SQL Server Express是一个不错的选择。由于你的转换只需要一次,你可以通过多种方式进行转换 - 可以查找数据库转换工具(似乎有一些这样的工具),或者使用DTS、SSIS或手工编写代码来编写自己的转换工具。
由于您使用的是C#,因此Sql Server似乎是一个合理的选择;MySql也是一个不错的选择。
我不会考虑在生产应用程序中使用MS-Access或SqlLite,因为它们有太多的缺点/限制-请参阅所有这些内容以获取示例。
一些限制(例如没有嵌套事务)在其维基百科文章中有描述,并且与其他嵌入式数据库的比较屡见不鲜(据我所知,还没有关于最佳选项的共识)。
至少有一个SO问题讨论了从Access的迁移,这里的一个张贴者链接到一个SQL Server CE工具列表,包括各种类型的迁移软件。
这个决定取决于许多因素,例如有多少并发用户将访问此应用程序(Access不允许超过5个)。
这些问题的答案将帮助您选择合适的产品。市场上有许多不同的产品。到目前为止,我对SQL Server和MySQL(它是免费的)非常满意。但要避开Oracle,因为我发现它很难处理且通常是一堆垃圾。
[编辑]
根据您最后的评论,我建议使用带高级服务的SQL Server Express http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=b448b0d0-ee79-48f6-b50a-7c4f028c2e3d。该产品仍然是免费的。唯一的限制是数据库不能大于4千兆字节或类似的大小。希望这可以帮到您。
如果你使用Sql Server,那么你可以添加报告服务,从Access迁移的路径也应该很容易。你甚至可以从Express版开始。