2015-09-29 73 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

相关问题