尝试附加自动命名的数据库错误

“尝试为文件C:\ Users \ John \ documents \ visual studio 2010 \ Projects \ PAS \ PAS \ bin \ Debug // PatAddSys.mdf附加自动命名的数据库失败。存在具有相同名称的数据库,或者无法打开指定的文件,或者它位于UNC共享上。“

这有什么不对? 我有正确的路径代码(我认为),但这里发生的错误仍然是我的数据库路径

private string dbPath = Application.StartupPath + "//PatAddSys.mdf"; 

这是我的数据库的位置

在此处输入图像描述

尝试将连接字符串中的User Instance属性设置为true。 您需要将此添加到您的连接字符串:

 User Instance=True 

还要确保再次检查数据库服务器,因为它可能已包含具有相同名称的数据库。

希望有所帮助。

将当前工作目录和连接字符串更改为正确的解决方案。

选择位于“服务器资源管理器”中的数据库,然后将连接字符串复制为在其属性中准确查看,然后在代码中使用它。

在此处输入图像描述

然后对于当前工作目录使用相同的路径而不使用数据库的名称。 解决方案 – > properties – > debug是当前工作目录路径所在的位置。 这适用于2015年的视觉工作室。

我使用我的连接字符串

 Private constr As String = "Data Source = (LocalDB)\MSSQLLocalDB;AttachDbFilename=" + Directory.GetCurrentDirectory() + "\DBNAME.mdf;" + "Integrated Security=True;Connect Timeout=30;User Instance=False" 

我认为这可能是非常晚了但是

这个字符串给我上面的错误

  

但是如果添加|数据目录| 在数据库名称之前,它工作正常

  

为了未来的帮助!

你纠正了它:

 private string dbPath = Application.StartupPath + "//PatAddSys.mdf"; 

但只需要做一步就是使用反斜杠“\”而不是SLASH“/”所以它应该是这样的:

 private string dbPath = Application.StartupPath + "\\PatAddSys.mdf"; 

谢谢这条线救了我很多工作:)

实际上我已经解决了这个问题,但我很容易处理它。 如果您的连接字符串是

  connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;" 

你需要创建自己的localDB。 首先去命令提示符而不是写

 sqllocaldb create MyDatabase 

而不是启动数据库

 sqllocaldb start MyDatabase 

而不是返回VS并将连接字符串更改为

 connectionString="Data Source=(LocalDB)\MyDatabase;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;" 

用这个:

 Path.GetFullPath(yourpath_string) 

它会工作