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

标签 c# winforms localdb

我正在尝试从 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/

相关文章:

c# - 在 LocalDB 中重置 EF 代码优先数据库

C# ssl 流在发送前不会停止缓冲

c# - .NET Core 不支持 BeginInvoke? (PlatformNotSupported 异常)

c# - 检测歌曲中的节拍

visual-studio-2012 - 默认情况下,Visual Studio 2012 Code First仍使用SQLEXPRESS

sql-server - 如何删除系统拥有的localdb实例

c# - WPF WebBrowser 控件中的字体平滑

javascript - 使用不同的参数从 C# 多次调用 javascript 函数

c# - 为什么 OnClosing 过时了,我应该迁移到 OnFormClosing

c# - 在 WinForms c# 中获得集中控制的最快方法?