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

C# 尝试附加自动命名数据库错误,c#,.net,database,linq-to-sql,path,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"; 这是我数据库的位

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

这里怎么了?我有正确的路径代码(我想),但是这个错误仍然发生在我的数据库路径上

private string dbPath = Application.StartupPath + "//PatAddSys.mdf";
这是我数据库的位置


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

User Instance=True
还要确保再次检查数据库服务器,因为它可能已经包含同名数据库

希望这能有所帮助。

使用以下方法:

Path.GetFullPath(yourpath_string)

它会起作用的,我想可能会很晚,但是

这个字符串告诉我上面的错误

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

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

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

以获取将来的帮助

您已更正它:

private string dbPath = Application.StartupPath + "//PatAddSys.mdf";
但需要做的一步是使用反斜杠“\”而不是斜杠“/” 所以应该是这样的:

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

&谢谢,这一行为我节省了很多工作:)

将当前工作目录和连接字符串更改为正确的目录和连接字符串以解决此问题

选择位于“服务器资源管理器”中的数据库 然后复制连接字符串,就像在其属性中看到的一样,然后在代码中使用它

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

我使用的连接字符串如下所示

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

事实上,我已经迫不及待地解决了这个问题,但我很容易就解决了。 如果您的连接字符串是

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

对我来说,是的,类似的回答是没有意义的。将文件移动到调试文件夹中,然后使用该位置。它对我有效。或者
System.IO.Path。​路径​分隔符