7 Stimmen

Eine Datenbank mit dem gleichen Namen ist bereits vorhanden oder die angegebene Datei kann nicht geöffnet werden oder sie befindet sich auf einem UNC-Share.

Ich erhalte diesen Fehler, wenn ich mein Projekt auf einem neuen PC ausführe. Um dies zu vermeiden, muss ich jedes Mal die neue Verbindungszeichenfolge kopieren und einfügen. Gibt es einen Weg, das zu vermeiden... Ich habe 3 verschiedene Datenbanken und es ist sehr ärgerlich O_O

SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=D:\\Benutzer\\Yoro\\Desktop\\WAPent 3.0 (1)\\WAPent 3.0\\WAPent 3.0\\WAPent 2.0\\WAPent 2.0\\App_Data\\LoginStuff.mdf;Integrated Security=True;User Instance=True");

Web Config Code

4voto

Marco Punkte 430

Im web.config verwenden Sie |DataDirectory|, das ein Ersatz für den Pfad zum Dataverzeichnis ist. Dies wird durch Verwendung von

AppDomain.CurrentDomain.SetData("DataDirectory", newpath)

Wenn Sie |DataDirectory| nicht festlegen, ist es standardmäßig der App_Data-Ordner, wenn es sich um ein Webprojekt handelt. Daher enthält der Pfad, der durch DataDirectory dargestellt wird, wahrscheinlich nicht die Datenbankdatei.

Weitere Informationen zum Dataverzeichnis finden Sie in diesem (älteren) Artikel .

3voto

Öffnen Sie den Server-Explorer, klicken Sie mit der rechten Maustaste auf Ihre Datenbank und wählen Sie Eigenschaften in der unteren rechten Ecke. Ein Eigenschaftsfenster wird angezeigt; Kopieren Sie dort die Verbindungszeichenfolge und verwenden Sie sie in Ihrer Anwendung. Zum Beispiel, in meiner Anwendung:

SqlConnection sconnection = new SqlConnection(@"Data Source=(LocalDB)\v11.0;
AttachDbFilename=C:\Users\Taha\Documents\Visual Studio 2013\Projects\Finder\Finder\App_Data\Userdb.mdf;
Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework");

sconnection.Open();

2voto

Asif Iqbal Punkte 491

Dieses Problem tritt in der Regel in VS 2012 auf, mit dem ich auch konfrontiert war. Um es zu lösen, müssen Sie diese Schritte befolgen: 1) Klicken Sie mit der rechten Maustaste auf die .mdf-Datei -> Wählen Sie Änderungen unter Server Explorer modifizieren. 2) Ein Pop-up-Fenster wird geöffnet -> Klicken Sie auf die Schaltfläche Erweitert -> Wählen Sie (LocalDB) \ v11.0 als Datenquellenwert

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben

Stellen Sie außerdem sicher, dass Sie auch Änderungen in der Webconfig-Datei vornehmen für DataSource = (LocalDB) \ v11.0. Sie sind fertig. Wella!!

0voto

Dimitrie Vatra Punkte 3

Zuerst muss Ihre Datenbank an einem anderen Ort als dem bin-Ordner Ihres Projekts liegen; Dann muss Ihre Verbindung wie folgt deklariert sein:

SqlConnection con = new SqlConnection(TABLE1TableAdapter.Connection.ConnectionString);

Wenn Sie ein DataGridView haben, können Sie auf Datenquelle auswählen klicken und Ihre Tabelle als Quelle aus Ihrer Datenbank hinzufügen. (In meinem Beispiel ist die Tabelle TABLE1 genannt.) Dann erstellt Visual Studio automatisch ein DataSet, DataBinding und einen TableAdapter. Der TableAdapter (TABLE1TableAdapter) enthält als Eigenschaft den ConnectionString, den Sie für die Datenbank benötigen. P.S. Ich hatte dieses Problem und nach viel Arbeit habe ich diese Lösung gefunden. Ich hoffe, es hilft Ihnen auch.

0voto

Bahaa Salaheldin Punkte 497

Sie sollten Ihren Verbindungsstring überprüfen. Wenn Sie versuchen, eine SQL-Datei anzuhängen, sollte der Verbindungsstring wie folgt aussehen: DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|PharmacyDB.mdf;Database=PharmacyDB;Integrated Security=True

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X