2014-10-29 50 views
0

我们计划在我们公司网络(位于不同地点)的外部计算机上推送Windows应用程序。我想知道我对数据库有什么选择。我想使用SQL Server,但有没有办法避免为我们加载Windows应用程序的每台PC支付许可证费用?在WinForm项目和许可选项中放置数据库

此外,有没有办法在部署应用程序时拥有可执行文件的数据部分,还是需要在每台机器上安装SQL Server?

谢谢!

+1

您通常在服务器上有一个数据库,并且有客户端连接到它。如果您希望每个客户端拥有自己的数据库,请查看[SQL Server Compact](http://msdn.microsoft.com/zh-cn/data/ff687142.aspx)。 – PoweredByOrange 2014-10-29 14:49:52

+0

如果您的数据库不需要大量查询和多用户访问,则可以使用SQLite。它可以嵌入到你的应用程序中。这是免费的。否则,您可以使用软件安装来添加SQL Server Express的自动安装。它可以安静地安装,而且你不需要许可证。 – i486 2014-10-29 15:13:31

回答

2

有没有办法避免为我们加载Windows应用程序的每台PC支付许可证费用?

想必您只是在这些机器上访问本地数据库吧?在这种情况下,您可以使用SQL Server Compact。它是免费的,相当不错。

有没有办法在部署应用程序时拥有可执行文件的数据部分?

如果您通过ClickOnce部署您的应用程序,那么您可以set SQL Server Compact as a prerequisite,这样应用程序将检查它的存在并在需要时安装它。

否则,您可以将其作为安装程序包(即InstallShield或WiX)的一部分与其他先决条件一样推出。

3

作为Sql Server精简版的一种替代方法和更新的技术,您可以使用LocalDB

两者都是MS SQL产品,但LocalDB不具备CE的缺点,仍然是一个基于文件的数据库,并且不需要服务器安装,配置和维护,只有运行时组件需要SqlServer Express

Here您可以在Express,Compact和LocalDB 和here之间找到一个很好的比较,您可以找到Microsoft的LocalDB的介绍。

LocalDB的许可与SqlExpress的许可相同,您还需要一个安装程序来运行LocalDB的运行时组件(与CE相比,这是一个缺点)。