0

这个:

SqlConnection myConnection = new SqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename='C:\\Users\\Joe\\Documents\\Visual Studio 2012\\Projects\\FileIO\\FileIO\\Database.mdf';Integrated Security=True");
try
{
   myConnection.Open();
}
catch (Exception e)
{
   Console.WriteLine(e.ToString());
}

返回此错误:

System.Data.dll System.Data.SqlClient.SqlException 中出现“System.Data.SqlClient.SqlException”类型的第一次机会异常:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)

有任何想法吗?

4

2 回答 2

1

您缺少数据源上的双反斜杠。\v它将作为垂直标签读取。

或者您可以在整个字符串之前使用前导@将其视为逐字字符串(如果这样做,则需要清除文件路径上的额外反斜杠)。

于 2013-05-17T22:03:52.340 回答
0

(复制自建立与 SQL Server 的连接时发生的错误

该问题与未在 .net 4.0 版中运行的应用程序有关

根据以下页面: http: //www.connectionstrings.com/sql-server-2012#sqlconnection

您需要 .net 4.0 及更高版本才能使用命名管道:

4.0.2 之前的 .NET 框架版本不支持 Server=(localdb) 语法。但是,命名管道连接将用于将 4.0.2 之前的应用程序连接到 LocalDB 实例。

SqlLocalDB.exe create MyInstance
SqlLocalDB.exe start MyInstance
SqlLocalDB.exe info MyInstance

该信息提供了命名管道,然后可以在连接字符串中使用它:

<add name="conn" 
providerName="System.Data.SqlClient" 
connectionString="Server=np:\\.\pipe\LOCALDB#B1704E69\tsql\query"/>
于 2013-05-17T22:02:54.023 回答