【发布时间】:2022-01-16 02:16:01
【问题描述】:
我正在做一个 Winforms 项目,我只是设置安装程序的安装文件。
场景
我设置的连接字符串是这样的:
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=F:\Application\MyAppv1.0\MyApp\DB.mdf;Integrated Security=True");
return con;
在这里,我使用个人位置的本地数据库。
问题
在客户端的 PC 上安装时,还附加了数据库,因此安装的文件将在 C:\Program Files\Author\MyAppv1.0 上。当我使用相同的连接字符串时,应用程序显示异常。那么,我应该在设置创建期间更新该位置的连接字符串吗? (我正在使用 MSI)。
对于这种情况,有什么常用的方法吗?
我的目标是让已安装的应用程序使用数据库,该数据库也位于同一安装位置,名为 DB.mdf,并随设置提供。
提前谢谢大家。
【问题讨论】:
-
您应该正确附加数据库,然后在连接字符串中设置实际的数据库名称。请参阅what's the issue with AttachDbFilename 即使 LocalDB 也允许正确附加数据库,请使用
CREATE DATABASE ... FOR ATTACH -
将连接字符串放入配置文件中。使用配置转换来更改非本地构建/部署中的设置。
-
这就是我设置连接设置的方式
<connectionStrings> <add name="DBConnectionString" connectionString="Data Source=DB.mdf;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings>安装后仍然无法正常工作.. 无法访问数据库是例外。 @Charlieface,@Flydog57 -
附加数据库时,您给数据库提供了什么实际名称(不是文件名)?
DB.mdf是附加数据库的奇怪名称,您需要引用它CREATE DATABASE [DB.mdf]... -
其实就是
MyAppDB是数据库的名字。我们是否必须使用 CREATE Query 再次创建数据库?我已经全部设置好了数据库。 @查理脸
标签: c# winforms connection-string release