我正在尝试从 c# winforms 项目构建我的第一个 .exe。我正在使用 Flexera Installing Shield。到目前为止,我可以构建和安装它,并且它在我正在开发的同一台机器上成功运行。在这个项目中,我使用的是本地数据库。我也可以将它安装在另一台机器上,但是当我尝试通过按钮访问 Db 时,它就会提示。我认为这与连接字符串有关。至少它在我试图访问 Db 的那一行提示:
Error 26 - Error Locating Server/Instance Specified
这是我明显错误的连接字符串:
string connectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=""C:\Users\idiot\Documents\Visual Studio 2013\Projects\Vis\Vis\LocalDbVisTest.mdf"";Integrated Security=True";
感谢您提前提供任何帮助或提示!
最佳答案
不要为连接字符串使用绝对路径,而是使用
Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\LocalDbVisTest.mdf;Integrated Security=True
你的程序找不到数据库的原因是因为它正在查找
C:\Users\idiot\Documents\Visual Studio 2013\Projects\Vis\Vis\LocalDbVisTest.mdf
这大概不存在于您客户的机器上。
您可以使用 AppDomain.CurrentDomain.SetData("DataDirectory", path)
手动设置您的 DataDirectory
。您可以使用 AppDomain.CurrentDomain.BaseDirectory
关于c# - 使用本地 Db 构建 C# WinForms 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21537323/