C# MDF连接字符串属性在代码中不起作用

C# MDF连接字符串属性在代码中不起作用,c#,sql-server,C#,Sql Server,当我在C#中查看我的MDF文件属性时,我可以看到名为连接字符串的属性,其值为: Data Source=(LocalDB)\v11.0;AttachDbFilename="C:\Users\itay\Documents\Visual Studio 2013\Projects\Chat\Chat\App_Data\ChatDB.mdf";Integrated Security=True;Connect Timeout=30 当我尝试在代码中使用此代码时: SqlConnection con =

当我在C#中查看我的MDF文件属性时,我可以看到名为
连接字符串的属性,其值为:

Data Source=(LocalDB)\v11.0;AttachDbFilename="C:\Users\itay\Documents\Visual Studio 2013\Projects\Chat\Chat\App_Data\ChatDB.mdf";Integrated Security=True;Connect Timeout=30
当我尝试在代码中使用此代码时:

SqlConnection con = new SqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename=\"C:\\Users\\itay\\Documents\\Visual Studio 2013\\Projects\\Chat\\Chat\\App_Data\\ChatDB.mdf\";Integrated Security=True");
con.Open();
SqlCommand com = new SqlCommand("SELECT * FROM Value", con);

SqlDataReader reader = com.ExecuteReader();
con.Close();
当我尝试使用它时,它抛出:

System.Data.dll中发生“System.Data.SqlClient.SqlException”类型的异常,但未在用户代码中处理


我又尝试了一些在SO中找到的连接字符串格式,但没有成功。

字符在C中有特殊的含义。它引入了一个转义序列。要在C#中直接将该连接字符串用作文本字符串,需要在其前面加上逐字字符
@
,并删除文本字符串中引入的所有反斜杠的两倍。
请注意,您还可以在数据库文件的路径周围使用一个引号,以消除另一个混淆点

SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename='C:\Users\itay\Documents\Visual Studio 2013\Projects\Chat\Chat\App_Data\ChatDB.mdf';Integrated Security=True");
如果您喜欢使用实际格式,则还需要将
数据源=(LocalDB)\\v11.0


在连接字符串中,您还需要使用
\\v
转义
\v
,因为它代表垂直选项卡-请参见。

异常的消息是什么?异常发生在哪里?消息是什么?删除编码连接字符串中
ChatDB.mdf
之后的额外反斜杠。文件名后面没有反斜杠。(投票结束这个问题是由于打字错误造成的。你真的应该学会仔细校对你的代码。)我怀疑你没有逃避
\v11.0
,它将
\v
解释为一个垂直选项卡。同时,我也不确定为什么不选择这个作为答案