【问题标题】:Connection string in VS 2015VS 2015 中的连接字符串
【发布时间】:2015-09-10 14:29:54
【问题描述】:

对不起,如果这是一个非常简单的问题,但我发誓我已经 a) 盯着它看了几天,并且 b) 试图用谷歌搜索答案。

我使用的是 Visual Studio 2015,并添加了一个名为 Investments 4 的数据库。我可以使用表适配器和数据网格连接到它并显示数据。

在程序的另一部分,我正在探索 SQL 命令并尝试手动打开连接,然后读取数据。我正在尝试设置一个新的 SqlConnection,我通过右键单击服务器资源管理器中的数据库并查看为我提供连接字符串的属性来获取连接字符串。

但是....当我将此连接字符串粘贴到新实例命令中时,VS 对象,因为它包含引号和反斜杠。

这是行。

SqlConnection myConnection = new SqlConnection("Data Source = (LocalDB)\MSSQLLocalDB; AttachDbFilename = "C:\Users\Nick\Documents\Investments 4.mdf"; Integrated Security = True; Connect Timeout = 30");
myConnection.Open();

显然是一些简单而明显的错误,但如果有人能抽出几分钟来指导我,我将非常感激。

【问题讨论】:

  • 在此类字符串的开头添加@
  • VS 试图转义您输入到SqlConnection() 的字符串,在开头使用@,即SqlConnection(@"SomeString")
  • 我不确定你是否需要连接字符串中的双引号。
  • 您应该查看 SqlConnectionStringBuilder 类。很有用!

标签: c#


【解决方案1】:

你只需要转义字符串。您可以使用 @ 前缀:

SqlConnection myConnection = new SqlConnection(@"Data Source = (LocalDB)\MSSQLLocalDB; AttachDbFilename = ""C:\Users\Nick\Documents\Investments 4.mdf""; Integrated Security = True; Connect Timeout = 30")

这意味着您只需将" 的实例加倍。如果不使用@ 前缀,则需要使用\ 字符转义所有双引号,该字符也需要自行转义:

SqlConnection myConnection = new SqlConnection("Data Source = (LocalDB)\\MSSQLLocalDB; AttachDbFilename = \"C:\\Users\\Nick\\Documents\\Investments 4.mdf\"; Integrated Security = True; Connect Timeout = 30")

在处理带有文件路径的字符串时 - 通常首选使用 @ 前缀。

【讨论】:

  • 完美。非常感谢。
【解决方案2】:

只需删除连接字符串中文件路径中的双引号,如下所示:

SqlConnection myConnection = new SqlConnection("Data Source = (LocalDB)\MSSQLLocalDB; AttachDbFilename = C:\Users\Nick\Documents\Investments 4.mdf; Integrated Security = True; Connect Timeout = 30");
myConnection.Open();

一切都和你一样。

【讨论】:

  • 欢迎来到 Stack Overflow!当你想在帖子中表达代码时,请在每行前放4个空格,或者直接点击Ctrl+K
猜你喜欢
  • 2011-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多