无法在VS2012中连接到本地数据库 - "建立与SQL Server的连接时发生网络相关或特定于实例的错误..."

20
这很奇怪,因为我可以通过相同的连接字符串("Data Source=(LocalDB)\v11.0;Integrated Security=true")使用SSMS 2008R2连接到本地DB。只有C#代码无法连接,我尝试了使用Connect Timeout=60增加登录时间,但没有成功。我还尝试了指定数据库Initial Catalog=&lt;databasename&gt;,其中<databasename>是我通过SSMS在localdb上创建的数据库。有什么建议可以解决这个问题吗?

首先在VS中通过服务器资源管理器连接到您的数据库。连接成功后,右键单击并查找属性。在那里,您将获得连接字符串。只需复制并粘贴到web.config文件中即可。 - Kundan Singh Chouhan
@Kundan 我已经尝试过了,但是还是出现了同样的错误。服务器资源管理器连接成功后,我按照所述从属性中复制了连接字符串,但我的应用程序仍然无法使用相同的字符串连接。 - Varun K
你能否直接粘贴连接字符串? - Kundan Singh Chouhan
1个回答

47

有没有可能是因为你忘记双重转义反斜线了?你尝试过这样写吗:

"Data Source=(LocalDB)\\v11.0;Integrated Security=true"

或者更好的方法是,你可以使用@符号来禁用整个连接字符串的字符转义:

@"Data Source=(LocalDB)\v11.0;Integrated Security=true"


啊,这真是个诀窍。为什么需要双斜杠?真奇怪...谢谢!它起作用了。 - Varun K
1
似乎 \v 是一个特殊字符! - Varun K
5
没错!如果没有双重转义,\v 将被视为单个(且特殊的)字符。在C#中,你也可以使用 @ 来完全避免转义,我已经更新了我的答案来反映这一点。 - Krzysztof Kozielczyk
1
另外,需要注意的是转义字符会阻止SSMS连接到LocalDb。 - J. Andrew Laughlin
@J.AndrewLaughlin 没错!只需使用 @ 以禁用转义,并使复制粘贴变得更简单 :D - DrCopyPaste

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接