使用本地Db构建C#WinForms应用程序

时间:2014-02-03 20:42:12

标签: c# winforms localdb

我正在尝试从c#winforms项目构建我的第一个.exe。我正在使用Flexera安装护盾。到目前为止,我可以构建和安装它,并在我正在开发的同一台机器上成功运行。在这个项目中我使用的是本地数据库。我也可以在另一台机器上安装它,但是当我试图通过一个按钮访问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";

感谢您提前提供任何帮助或提示!

1 个答案:

答案 0 :(得分:4)

不使用连接字符串的绝对路径,而是使用

Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\LocalDbVisTest.mdf;Integrated Security=True

您的程序无法找到数据库的原因是因为它正在查找

C:\Users\idiot\Documents\Visual Studio 2013\Projects\Vis\Vis\LocalDbVisTest.mdf

据推测,您的客户机上不存在。

您可以使用DataDirectory手动设置AppDomain.CurrentDomain.SetData("DataDirectory", path)。您可以使用AppDomain.CurrentDomain.BaseDirectory

获取可执行文件的路径