“尝试为文件C:\ Users \ John \ documents \ visual studio 2010 \ Projects \ PAS \ PAS \ bin \ Debug // PatAddSys.mdf附加自动命名的数据库失败。具有相同名称的数据库存在,或指定的文件无法打开,或者它位于UNC共享上。“
这里有什么问题?我的路径有正确的代码(我认为),但这里发生的错误仍然是我的数据库路径
private string dbPath = Application.StartupPath + "//PatAddSys.mdf";
这是我的数据库的位置
答案 0 :(得分:12)
尝试将连接字符串中的User Instance属性设置为true。您需要将其添加到连接字符串中:
User Instance=True
还要确保再次检查数据库服务器,因为它可能已包含具有相同名称的数据库。
希望有所帮助。
答案 1 :(得分:2)
将当前工作目录和连接字符串更改为正确的解决方案。
选择位于“Server explorer”中的数据库 然后将连接字符串复制为在其属性中精确查看,然后在代码中使用它。
然后对于当前工作目录使用相同的路径而不使用数据库的名称。解决方案 - >属性 - > 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)
它会起作用