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

本文关键字:代码 不起作用 属性 连接 字符串 MDF | 更新日期: 2023-09-27 18:27:46

当我在C#中查看MDF文件属性时,我可以看到名为Connection String的属性,其值为:

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中找到的连接字符串格式,但没有成功。

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

在连接字符串中,您还需要用''v转义'v,因为它代表垂直选项卡-请参阅MSDN上的。

'字符在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");

如果您喜欢使用实际格式,则还需要将Data Source=(LocalDB)''v11.0; 之间的反斜杠加倍

关于C#字符串、转义序列和逐字文本

的有趣阅读