2017-05-05 38 views
0

我開發了一個涉及數據庫的基於勝利表單的應用程序。我在該解決方案中的Visual Studio中構建了數據庫。在app.config文件我現在的連接字符串是:構建通用連接字符串

connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\NARA.mdf;Integrated Security=True;" providerName="System.Data.SqlClient"/> 

但要檢查它,我複製,其中包括所有的文件(包括數據庫)我的Debug文件夾中,但它給了連接字符串例外我的其他系統上。我怎樣才能建立一個連接字符串,可以在我的程序所使用的任何系統上工作。

+0

什麼是錯誤信息? – Steve

+0

@Steve這是相當長的,但我會嘗試把重要的部分.. 建立連接到SQL Server時發生網絡相關或實例特定的錯誤。服務器未找到或可訪問。 (提供者:SQL網絡接口,錯誤50-發生Localc Databse運行時錯誤指定的LocalDB實例不存在 – Bilal

+0

您是否安裝了LocalDB的位 – Steve

回答

1

所有的問題都是由Sql Server版本之間的不兼容造成的。
安裝2012 LocalDB時,它有一個名爲v11.0的默認實例。所以,如果你想連接到這個默認實例,讓它管理您的MDF文件,你需要一個連接字符串

connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=....."/> 

,或者您可以使用管理命令提示符創建與您連接所需的名稱的實例,打字

SqlLocalDb c MSSqlLocalDB 

但這不是問題的結束,因爲現在你需要有與SQL Server 2012版本(的LocalDB與否)創建的MDF文件。並且,從收到的錯誤消息中可以清楚地看到,您擁有使用Sql Server 2016創建的MDF文件。

2012無法讀取使用2016創建的文件。這一直是Sql Server(並且邏輯上是這樣)的情況,因爲新MDF文件的版本總是包含增強或內部更改,這些增強或內部更改會導致這種不兼容性。

修復很簡單:安裝與您分發的MDF文件兼容的LocalDB位版本。 (請記住,LocalDB是一個開發工具,不應該用於生產,儘管它可以在簡單的情況下工作,例如我用它來分發我的全面應用程序的演示。因此,具有不良IT部門的客戶可以評估產品未被強制安裝Sql Server Express o完整版)