连接字符串不正确?错误:尝试附加自动命名的数据库失败

时间:2016-05-13 12:00:08

标签: c# entity-framework connection-string

解决方案:将目录添加到app.config文件中的连接字符串和项目属性部分中的Settings.setting文件中。我的工作连接字符串最终为<Value Profile="(Default)">Data Source=(LocalDB)\v11.0;AttachDbFilename=F:\hi\prgrm\ProgramName\Database1.mdf;Integrated Security=True</Value>

运行程序后,我收到以下错误:

  

尝试为文件F:\ Graded unit附加自动命名的数据库   2 \ SimplyRugby \ LollipopUI \ bin \ Debug \ Database1.mdf失败。一个   存在同名的数据库,或指定的文件不能存在   打开,或者它位于UNC分享。

发生错误的方法:

public bool CheckUsername(string username)
{
    var usernameResult = (from person in dbContext.Persons
                            where (person.Username == username)
                            select person.Username).FirstOrDefault(); 
                          //stores username if a username is found

    return !(string.IsNullOrEmpty(usernameResult));
    // if no correct user found from query return false else true
}

经过一些研究显然,连接字符串是错误的。我在线玩了一些建议,但是我不太清楚什么是不正确的以及如何解决这个问题所以我在过去的五个小时左右都在圈子里。

我的app.config文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <connectionStrings>
        <add name="LollipopUI.Properties.Settings.Database1ConnectionString"
             connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;"
             providerName="System.Data.SqlClient" />
    </connectionStrings>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
</configuration>

感谢您的时间。

3 个答案:

答案 0 :(得分:0)

尝试将User Instance属性设置为true,如

User Instance=True

在连接字符串中。

你也可以参考这个related thread,它说你的连接字符串应该是这样的:

<connectionStrings>
    <add name="Sales_DBEntities" 
         connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string='server=YourServerNameHere;database=Sales_DB;integrated security=True;App=EntityFramework'" 
        providerName="System.Data.EntityClient" />
</connectionStrings>

答案 1 :(得分:0)

我遇到过这种情况,我就这样解决了。 转到设置DataBase并将选项**Copy to output Directory**设置为**Copy if Newer** 问题将解决

答案 2 :(得分:-1)

迟到的反应总比没有反应好:

问题是我的connectionString未映射到数据库位置。