2017-11-02 1 views
0

Ich habe eine WPF-Anwendung, die eine Verbindung zu einer lokalen SQL Server-Datenbankdatei herstellt (.mdf). Ich benutze Entity Framework.Herstellen einer Verbindung mit lokaler SQL Server-Datenbankdatei

Verbindungszeichenfolge ist:

Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\\db_SmartPOS.mdf;Integrated Security=True 

Das Verzeichnis kann auf Folgendes geändert:

string doc = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); 
AppDomain.CurrentDomain.SetData("DataDirectory", doc + @"\SmartPOS\"); 

ich die .mdf Dateien manuell an die angegebene Verzeichnis kopiert haben, getestet und alles funktioniert gut auf meinem Hauptcomputer, auf dem SQL Server 2014 installiert ist.

Jetzt stelle ich die App auf einem anderen PC, wo ich SQLLocalDB installiert habe. Jedes Mal, wenn ich versuche, die Datenbank zu verbinden, erhalte ich diese Ausnahme:

System.Data.EntityException. Der zugrunde liegende Provider konnte nicht geöffnet werden -> Sysmte.Data.SqlClient.SqlException ..... Die angegebene lokale Datenbankinstanz existiert nicht.

Die .mdf- und Protokolldateien werden in dem oben angegebenen Verzeichnis abgelegt. Ich habe auch versucht, sie in das Verzeichnis zu kopieren, in dem die Anwendung installiert ist.

Ich frage mich, was fehlt mir?

+0

Könnte ein Tippfehler sein, aber MSSQLLocalDB <> SQLLocalDB –

+0

@WEI_DBA Microsoft SQL Server 2012 Express localdb – Necro1992

+0

Richtig, aber haben Sie den Namen der Instanz das gleiche? –

Antwort

0

Also hier, wie es funktioniert hat.

Zuerst fand ich einen Artikel online, der angegeben hat, dass die Verbindungszeichenfolge in SQL 2014 anders als die in SQL 2012 ist. Daher sollte Data Source = (LocalDB) \ MSSQLLocalDB im Jahr 2014 in Data Source = (LocalDB) \ v11.0. Wenn Sie das Entity-Framework verwenden, sollten Sie die Einstellungen für die Verbindungszeichenfolgen und in app.config vornehmen.

Sobald dies getan wurde, habe ich es auf dem anderen System getestet, und der Ausnahmefehler wurde geändert. Dieses Mal konnte die Anwendung zwar eine Verbindung herstellen, aber mit den Versionen war etwas nicht in Ordnung, und ich konnte nicht darauf zugreifen.

Ich heruntergeladen SQL Server 2014 Localdb-Engine und ersetzt die 2012, und alles hat gut funktioniert!

Hoffentlich wird dies helfen, jemand

Verwandte Themen