C#库存系统的数据库

3
我正在升级一家珠宝店的库存系统,原本是用MS Access构建的。该应用程序存储物品、客户、供应商,并显示有关存储物品的数据。应考虑使用报告工具生成可打印格式的物品报告。
该系统应该用C#构建,但我还没有决定应该为这个应用程序使用哪个数据库引擎。你有什么建议?我想到了SQLite,但我需要记住从旧数据库迁移项目到新的更新数据库是必要的。而且由于最初是用MS Access构建的。我应该坚持使用MS Access并用它来构建我的应用程序吗?
编辑:这是一个单用户系统。

顺便说一下,Linq很酷。 - Hamish Grubijan
6个回答

7

如果你想坚持使用微软技术,SQL Server Express是一个不错的选择。由于你的转换只需要一次,你可以通过多种方式进行转换 - 可以查找数据库转换工具(似乎有一些这样的工具),或者使用DTS、SSIS或手工编写代码来编写自己的转换工具。


这是一个桌面应用程序。SQL Server 是一个服务器级引擎,我需要一个更简单的解决方案,易于部署。 - DanSogaard
3
我建议使用SQL Server Express。请查看此处的功能(http://www.microsoft.com/express/Database/)。据我了解,SQL Server Express是为你考虑的应用程序类型而创建的,可以使用常见的SQL Server方法,并具有在需要时扩展到完整版SQL Server的能力。 - Wagner Silveira
@DanSogaard:我同意@Wagner Silveira的看法:SQL Server 2008 Express可能是你最好的选择。它非常稳定,同时又很轻量级,而且在需要更大版本时还可以扩展性。另外它是免费的!所以没有任何损失。 - Randolpho

4

由于您使用的是C#,因此Sql Server似乎是一个合理的选择;MySql也是一个不错的选择。

我不会考虑在生产应用程序中使用MS-Access或SqlLite,因为它们有太多的缺点/限制-请参阅所有这些内容以获取示例。


我同意这个观点,你可以使用ORM使你的代码与数据库无关,这样就不会太重要了。 - Aim Kai
我想知道你关心的SQLite的具体限制是什么。 - Instance Hunter
@[Daniel Straight]:最大的缺点是它依赖于操作系统级别的文件锁定来进行并发访问控制;请参见http://www.aspfree.com/c/a/Database/Using-SQLite-for-Simple-Database-Storage/。 - Steven A. Lowe

4
对于微软生态系统中的单用户桌面应用程序,请考虑使用SQL Server Compact Edition而不是完整的服务器产品。以下是Microsoft概述的相关部分:
Microsoft SQL Server 2005 Compact Edition(SQL Server Compact Edition)是为需要轻量级、基于进程的关系型数据库解决方案的开发人员设计的,这些解决方案可以在桌面和移动设备上开发和部署。SQL Server Compact Edition Runtime可用于在桌面上开发和部署应用程序。
SQL Server Compact Edition是一个功能强大但轻量级的关系型数据库引擎,通过支持熟悉的结构化查询语言(SQL)语法并提供与SQL Server一致的开发模型和API,使开发桌面应用程序变得容易。

一些限制(例如没有嵌套事务)在其维基百科文章中有描述,并且与其他嵌入式数据库的比较屡见不鲜(据我所知,还没有关于最佳选项的共识)。

至少有一个SO问题讨论了从Access的迁移,这里的一个张贴者链接到一个SQL Server CE工具列表,包括各种类型的迁移软件。


2

这个决定取决于许多因素,例如有多少并发用户将访问此应用程序(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千兆字节或类似的大小。希望这可以帮到您。


单用户。除了基本的数据存储外,还需要报告服务。[这与我正在尝试制作的内容类似。][1] [1]: http://www.executivpro.com/inventoryimage.html。你认为构建该应用程序使用了哪种数据库? - DanSogaard
1
@DanSogaard - 请检查我的最后一次编辑。 - James

1

0

如果你使用Sql Server,那么你可以添加报告服务,从Access迁移的路径也应该很容易。你甚至可以从Express版开始。


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