C# 如何部署windows窗体数据库应用程序

C# 如何部署windows窗体数据库应用程序,c#,sql-server,deployment,C#,Sql Server,Deployment,我正在开发一个需要与SQL Server通信的windows窗体应用程序。一旦连接字符串试图连接到无效地址,部署应用程序时就会遇到问题 我已经搜索了很多,发现连接字符串必须有|DataDirectory |指令。现在.mdf文件位于目录C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA中。实际上,连接字符串是:connectionString=“Server=。\SQLExpress;AttachDbFilen

我正在开发一个需要与SQL Server通信的windows窗体应用程序。一旦连接字符串试图连接到无效地址,部署应用程序时就会遇到问题

我已经搜索了很多,发现连接字符串必须有
|DataDirectory |
指令。现在.mdf文件位于目录
C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA
中。实际上,连接字符串是:
connectionString=“Server=。\SQLExpress;AttachDbFilename=| DataDirectory | PDVDatabase.mdf;Database=PDVDatabase;Trusted_connection=Yes;”

我的应用程序连接到数据库的唯一方式是通过服务器资源管理器(我使用的是Visual Studio 2013),从中获取我在app.config中设置的.mdf文件的静态连接字符串,但这种方式在部署后不起作用

我的问题是:如何在部署后连接我的应用程序,以便与.mdf文件通信?(我正在使用安装项目进行部署)。有什么不对劲吗


谢谢。

您应该将连接字符串放入应用程序的App.config文件中。配置文件中有一个用于此的部分

<connectionStrings>
     <add name="Connection String name" connectionString="..."/>
</connectionStrings>


并且您应该能够向数据库写入正确的连接字符串。

可能您的问题是由数据库中不正确的用户和权限设置引起的。您必须确保,在部署后使用您的应用程序的用户有权连接并使用数据库

很多事情需要解决

1) You need a copy of your MDF and LDF files to be distributed with your app
2) You need to know if your user has Sql Server installed in its internal LAN or its PC
If the previous condition is true then
    3.1) You need to attach your copy to the end user Sql Server Instance
    3.2) You need to change your connection string to point to the end user Sql Server Instance
else 
    4.1) You need to distribute and install LOCALDB
    4.1) You need to prepare the connection string for LOCALDB 
一些链接可帮助您完成此任务

查看信息
有关信息,请参见


谢谢msporek,但我已经完成了。部署项目时会出现问题。连接字符串必须灵活,以发现将与项目一起安装的.mdf文件。如何继续?因此,以前在开发环境中有一个MDF文件,而现在数据库位于正在运行的SQL Server Express实例中?如果是这种情况,那么您就不能只在连接字符串中连接到MDF文件。相反,您需要这样的内容:“数据源=。\SQLEXPRESS;Initial Catalog=”,并且您还需要在连接字符串中使用“提供安全信息”,可以是“集成安全性”(“集成安全性=true;”),也可以是“用户传递”,具体取决于SQL Server Express在计算机上的配置方式。阅读connectionstrings.com网站。目前,我使用同一个SQL Server用户将其部署到自己的PC上只是为了进行测试。