2017-03-14 8 views
3

Ich erstellte eine Anwendung mit einer .mdf Datenbankdatei (Version 13.00.4001).SQL Server 2016 LocalDb Verbindungsproblem

Wenn ich Anwendung auf dem gleichen Computer ausführen, wo ich es kompiliert habe, funktioniert alles super. Aber wenn ich versuche, es auf einem zweiten Computer mit SQL Server LocalDb 2016 zu installieren, funktioniert es nicht und sagt, dass SQL Server nicht auf dem Computer gefunden werden kann.

Was ist das Problem? Ich kann nicht verstehen warum.

Und wenn ich versuche Anwendung auf einem PC zu laufen, wo es SQL Server 2014 LocalDB installiert ist und 2016 das Protokoll sagt

kann nicht geöffnet werden, da es sich um Version 852. Diese Serverversion 782 und früher unterstützt. Ein Downgrade-Pfad wird nicht unterstützt.

Wirklich kann ich nicht verstehen, warum es all diese Probleme gibt.

-Code zu bauen Verbindungszeichenfolge verwendet:

"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=" + 
Directory.GetCurrentDirectory() + 
@"\Dati.mdf; Integrated Security=True" 
+0

Nun, Sie ** können ** keine Datenbankdatei aus einer SQL Server ** 2016 ** - Instanz auf einer älteren Version von SQL Server verwenden - Sie können also diese '.mdf' Datei nicht mit Ihrer SQL verwenden Server ** 2014 ** LocalDB - Sie müssen sicherstellen, dass Sie die Version 2016 von LocalDB verwenden (das ist der zweite Fehler, den Sie bekommen) –

+0

Ich habe 2016 und 2014 lokale db auf dem Rechner installiert. und ich habe auch mit einer anderen Maschine versucht, wo es nur 2016 war installiert und es nicht –

+0

Sie benötigen funktioniert Ihre ** Verbindungszeichenfolgen ** und zu überprüfen, sicherzustellen, dass sie auf einen gültigen, installiert zeigen und Ausführen von SQL Server LocalDB Instanz - und Sie müssen dafür sorgen, ** **, dass dies der ** 2016 ** Version von LocalDB –

Antwort

0

Gelöst ich mein Problem durch das Löschen bestehender MSSQLLocalDB Instanz und erstellen Sie es mit dieser Befehlszeile

sqllocaldb MSSQLLocalDB

und

löschen sqllocaldb erstellen MSSQLLocalDB

und jetzt funktioniert alles super.

0

Es klingt wie Sie versuchen, den Code von einer Maschine zur anderen zu bewegen, aber Sie Ihre Datenbank nicht bewegt. Dies bedeutet, dass Sie eine neue Datenbank auf dem zweiten Computer erstellen und dann den neuen Verbindungsstring abrufen müssen, der auf dem zweiten Computer funktioniert.

Suchen Sie here für Hinweise zum Erstellen einer Datenbank, aber zuerst SQL Server Management Studio (siehe here). Wahrscheinlich möchten Sie eine Art Konfigurationsdatei erstellen, in die die neue Verbindungszeichenfolge eingefügt wird. Here ist eine Anleitung zu diesem Thema.

+0

I db von Visual Studio erstellen und wenn ich es kompilieren Ich verschiebe das komplette Verzeichnis auf einen anderen Rechner. Bis jetzt hat es immer funktioniert. Ich habe auch andere Anwendung, die große Werke –

0

Version 13.00.4001 entspricht SQL Server 2016 Service Pack 1. Wenn Sie versuchen, Ihre Datenbank auf einem anderen Computer wiederherzustellen/anzuhängen, stellen Sie sicher, dass nicht nur die gleiche Version, sondern auch das gleiche SP/CU dort installiert ist.

die Version zu überprüfen, können Sie auf die Instanz und Ausgabe verbinden:

print @@version; 

Es wird Ihnen alle notwendigen Informationen über Build, Ausgabe, SP/CU, Bitness usw. der Instanz in Frage.

+0

ich diese Version in meinem sekundären Rechner installiert haben, aber es nicht zu diesem Fall verbinden scheint, dass ich nicht anythink –

+0

installiert haben, wenn es sich um eine LocalDB Instanz ist, können Sie diese Liste und überprüfen ihre Versionen mit dem Konsolenwerkzeug 'sqllocaldb.exe'. Für normale Instanzen können Sie sie im SQL Server-Konfigurationsmanager finden. –

+0

Ja, es ist eine localDb-Instanz, die ich mit SqlLocalDb Versionen versucht habe und das Ergebnis ist: Microsoft SQL Server 2012 (11.0.2318.0) Microsoft SQL Server 2014 (12.0.2000.8) Aber wenn ich in die installierte Programmliste geht, gibt es SqlLocalDb 2016 und wenn ich versuche, es mir wieder installieren gesagt, dass ist bereits installiert –