此:
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.SqlClient.SqlException'的第一次机会异常。 发生在System.Data.dll System.Data.SqlClient.SqlException:A 建立时发生与网络相关或特定于实例的错误 与SQL Server的连接。服务器未找到或未找到 无障碍。验证实例名称是否正确以及SQL 服务器配置为允许远程连接。 (提供者:命名 管道提供程序,错误:40 - 无法打开与SQL Server的连接)
任何想法?
答案 0 :(得分:1)
您错过了数据源上的双反斜杠。它正在阅读\v
作为垂直标签。
或者您可以在整个字符串之前使用前导@
将其视为逐字字符串(如果您这样做,那么您需要清除文件路径上的额外反斜杠。)
答案 1 :(得分:0)
(从error occurred while establishing a connection to SQL Server复制)
问题与未在.net 4.0版中运行的应用程序有关。
根据以下页面: http://www.connectionstrings.com/sql-server-2012#sqlconnection
您需要.net 4.0及以上才能使用命名管道:
.NET Framework不支持Server =(localdb)语法 4.0.2之前的版本。但是,命名管道连接将起作用 将4.0.2之前的应用程序连接到LocalDB实例。
SqlLocalDB.exe create MyInstance
SqlLocalDB.exe start MyInstance
SqlLocalDB.exe info MyInstance
info提供了命名管道,然后可以在连接字符串中使用:
<add name="conn"
providerName="System.Data.SqlClient"
connectionString="Server=np:\\.\pipe\LOCALDB#B1704E69\tsql\query"/>