我是ClickOnce的新手。我使用C#和SQL Server Express创建了一个WinForms应用程序。目前我的数据库位于mssql数据文件夹中。我的连接字符串位于app.config文件中。
<add name="default" providerName="System.Data.SqlClient"
connectionString="Server=localhost\SQLEXPRESS;Database=DBase;Trusted_Connection=True;" />
如何包含我的数据库文件以便与应用程序一起部署?
数据库将部署到哪个文件夹,我的连接字符串(上面)是否仍在工作?
答案 0 :(得分:7)
你有几个选择。首先,如果这是一个简单的数据库,我建议您放弃使用SQL Express并使用SQL Server Compact。 Compact SQL数据库是可以与应用程序安装捆绑在一起的文件。下面是一个指导您完成SQL Compact数据库创建过程的链接。
http://technet.microsoft.com/en-us/library/ms173009.aspx
以下链接讨论了为SQL Server Compact设置必要的依赖项和先决条件。 (注意,您需要滚动到标题为基于专用文件的部署的部分。)
http://msdn.microsoft.com/en-us/library/aa983326(v=VS.100).aspx
如果您有一个复杂的数据库,或者可能会增加大于为SQL Compact数据库设置的3GB限制的数据库,唯一的选择是将SQL Server Express设置为应用程序的先决条件,并在安装后创建一个应用程序中的例程,用于检查SQL Express中是否存在数据库,如果不存在,则启动数据库创建和更新例程。
就我而言,我有一个沉重的,数据驱动的应用程序,它是在SQL Compact出局之前编写的,并且必须在经常与我们的服务器断开连接的环境中运行。我不得不使用SQL Express,因此我们必须开发一种机制来在服务器可用时检查数据库更新。如果有更新,则按顺序对子数据库下载并执行加密的脚本文件。更新数据库容器后,将调用后续例程来检查和同步数据。
- 编辑 -
我想快速回复一下,是的,您可以以编程方式将SQL Server数据库捆绑并附加到SQL Server的本地实例。这有很多障碍,如果您的用户群使用多个版本的Windows,PC架构和多种不同的安全方案,您可能无法将数据库始终连接到用户的SQL Server。是的,可以做到。但是,我建议尽可能避免这种情况。