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

时间:2012-03-01 01:36:10

标签: c# .net database linq-to-sql path

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

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

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

这是我的数据库的位置

enter image description here

6 个答案:

答案 0 :(得分:12)

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

User Instance=True

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

希望有所帮助。

答案 1 :(得分:2)

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

选择位于“Server explorer”中的数据库 然后将连接字符串复制为在其属性中精确查看,然后在代码中使用它。

enter image description here

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

我使用我的连接字符串

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

答案 2 :(得分:1)

我认为可能已经非常晚了但是

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

<add name="MAB_ERP_2_0.Properties.Settings.MyConnection" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=Database\MabErp2.mdf;Integrated Security=true;"
        providerName="System.Data.SqlClient" />

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

<add name="MAB_ERP_2_0.Properties.Settings.MyConnection" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database\MabErp2.mdf;Integrated Security=true;"
        providerName="System.Data.SqlClient" />

答案 3 :(得分:0)

为了未来的帮助!!

你已经纠正过了:

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

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

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

&amp;感谢这一行为我省去了很多工作:)

答案 4 :(得分:0)

实际上我遇到了这个问题,但我很容易处理。 如果您的连接字符串是

 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;"

答案 5 :(得分:-3)

使用此:

Path.GetFullPath(yourpath_string)

它会起作用