C# MDF连接字符串属性在代码中不起作用
当我在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 =
连接字符串的属性,其值为:
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
解释为一个垂直选项卡。同时,我也不确定为什么不选择这个作为答案