2016-05-13 9 views
3

Lösung: Fügen Sie das Verzeichnis zu Ihrer Verbindungszeichenfolge in der Datei app.config und der Datei Settings.setting im Eigenschaftsbereich Ihres Projekts hinzu. Meine Arbeitsverbindungszeichenfolge beendet <Value Profile="(Default)">Data Source=(LocalDB)\v11.0;AttachDbFilename=F:\hi\prgrm\ProgramName\Database1.mdf;Integrated Security=True</Value>Falsche Verbindungszeichenfolge? Fehler: Ein Versuch, eine automatisch benannte Datenbank anzufügen, ist fehlgeschlagen.

zu sein, sobald ich mein Programm laufen bekomme ich folgende Fehlermeldung:

An attempt to attach an auto-named database for file F:\Graded unit 2\SimplyRugby\LollipopUI\bin\Debug\Database1.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.

Die Methode, die der Fehler passieren macht:

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 
} 

Nach einigen Recherchen offenbar es ist dass die Verbindungszeichenfolge falsch ist. Ich habe ein wenig mit einigen Vorschlägen online gespielt, aber ich bin mir nicht sicher, was falsch ist und wie ich es beheben kann, also bin ich in den letzten fünf Stunden im Kreis herumgelaufen.

Meine app.config Datei:

<?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> 

Vielen Dank für Ihre Zeit.

+0

Mögliche doppelte lösen: [versucht, eine Auto-Namen-Datenbank für MDF-Datei fehlgeschlagen attach] (http://stackoverflow.com/questions/8747673/versuch-an-attach-an-auto-named-datenbank-fuer-mdf-file-failed) – stuartd

+0

Fügen Sie den logischen Datenbanknamen hinzu, so dass die Datei ein zweites Mal erkannt und nicht angefügt wird; Database = myDatabase; – Steve

Antwort

0

Späte Antwort ist besser als gar keine Antwort überhaupt:

Das Problem war, dass meine Connection wurde dem Datenbankspeicherort nicht zugeordnet.

+0

Könnten Sie schreiben, was Sie genau geändert haben, um es zu lösen? – t3chb0t

0

Try User Instance Eigenschaft als wahr wie

User Instance=True 

in Ihrer Verbindungszeichenfolge zu machen.

Sie können auch auf diese related thread beziehen, die besagt, dass die Verbindungszeichenfolge sollte wie folgt aussieht:

<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> 
+0

Hallo @Rahul Tripathi, ich habe es bereits versucht und es heißt "Das Benutzerinstanz-Login-Flag ist nicht erlaubt, wenn eine Verbindung zu einer Benutzerinstanz des SQL-Servers, die Verbindung wird geschlossen." wenn ich die Benutzerinstanzeigenschaft in true ändere. – Zain

0

Ich habe diese Situation konfrontiert und ich habe es so gelöst. Zum Einstellen der DataBase und setzen Option **Copy to output Directory**-**Copy if Newer** das Problem