2015-09-29 103 views
2

我正在爲我的工程老師編寫一個程序,它連接到MS SQL localDB。我的問題是,該程序完美地運行在我的電腦上,但是當我將它移動到將要使用的計算機上時,程序無法連接到數據庫(我將在今天下午更新帖子,當我有機會時複製例外)。我的電腦上安裝了SQL Server 2008和2014。 localDB是在2008引擎上創建的。我試圖運行它的計算機是帶有SQL Server 2008 Express的Windows XP以及.NET 4.0(.NET程序本身啓動,但只有在執行與LocalDB相關的任何操作時纔會崩潰)。當移動到另一臺計算機時,c#無法連接到sql localdb

我的連接字符串如下:

public const string conString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Parts.mdf;Integrated Security=True"; 

而且我也試過:

public const string conString = @"Data Source=DAVIDS_LAPTOP;Initial Catalog=X:\PARTS.MDF;Integrated Security=True"; 

如果解決方案將在Windows XP上運行的SQL Server 2008 Express的,這將是高度讚賞,儘管不是絕對必要的。

我試過了所有我能想到的(雖然,我是SQL新手)。我也試圖谷歌,但無濟於事

編輯: https://www.dropbox.com/sh/v6k76jrchxf7agr/AAA1H66di5dndo19WSm-p0XZa?dl=0

+0

我會@JNYRanger在一點點,因爲它在我的電腦上運行而不會丟失任何錯誤消息,並且此刻我無法訪問另一臺計算機 –

回答

1

的問題是雙重的:其一是,你使用SQL Server 2008和另一種是使用的是Windows XP。 LocalDB是作爲SQL Server 2012的一部分引入的,並且僅在Windows Vista SP2/Server 2008 R2及更高版本中受支持。

LocalDB無法使用2008引擎創建,因爲它在該版本中不受支持,但是您可能已經在SSMS中設置了兼容模式。但是,這仍然不允許LocalDB與SQL Server 2008驅動程序一起使用。

它在本地工作的原因是因爲您安裝了SQL Server 2014。這使驅動程序允許與LocalDB實例進行通信。

如果您想使用SQL Server 2008 R2實例,那麼您將無法使用LocalDB /嵌入,並且需要連接到數據庫所在的實際SQL Server [Express]實例。如果你想嵌入一個數據庫,並且你使用的是Windows XP(並且你的數據集/需求不是很大),你應該使用SQL Server Compact

下面是關於SQL Server的LocalDB(這涉及到2012年,但它幾乎是一樣的2014)的要求的文章:What is LocalDB?

主要來源:http://blogs.msdn.com/b/sqlexpress/archive/2011/07/12/introducing-localdb-a-better-sql-express.aspx

+0

感謝JNYRanger!雖然這是一個令人沮喪的事實,但它最終解決了我的問題,並且我很欣賞有關SQL Server Compact的建議。我會問我的老師他是否可以買一臺新電腦(很可能,但是如果它不會很快發生,那麼我肯定會轉移到SQL Server Compact –

+0

@DavidKluszczynski沒問題。特別是如果你只存儲有限的數據集(小於4GB),並且你不需要完整的數據庫服務器的能力。 – JNYRanger

相關問題