1

我正在制作一个在 Windows 7 64 位上使用 SQL Server 2008 R2 Express 的 C# 应用程序。我面临的问题是我无法连接到我的数据库,因为我的连接字符串错误。我正在使用 .udl 文件来制作连接字符串,这就是它给我的:

Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Restorant;
DataSource=.\SQLEXPRESS

此连接字符串正在创建一个错误,指出存在无法识别的转义值。我尝试将我的数据源更改为(本地),因为我的朋友说它适用于他们的项目,但由于未知实例名称错误,我无法连接。

我还有其他方法可以连接到我的数据库吗?

4

3 回答 3

3

在 C# 中,该字符\被视为转义序列中的第一个字符。
因为\S您的 ofData Source=.\SQLEXPRESS未被识别为有效的转义序列,所以您会收到错误消息。

因此,您需要构建连接字符串,并在其前面加上字符@或将转义字符加倍,\\ 请参阅使用字符串以了解 @ 字符的解释

string conString = @"Integrated Security=SSPI;Persist Security Info=False;" + 
                   @"Initial Catalog=Restorant;Data Source=.\SQLEXPRESS";

如果必须,请记住使用此方法逐字制作多个字符串。

另请注意连接字符串的数据源部分中的小错误。它需要数据和源之间的空间。请参阅connectionstrings.com

于 2013-01-06T16:41:39.007 回答
1

现在,您的连接字符串正试图逃逸,S例如.\S. 改成这个

//double the backslash to escape the slash
string connectionString = "Integrated Security=SSPI;Persist Security Info=False;
          Initial Catalog=Restorant; Data Source=.\\SQLEXPRESS";

或者

//precede the string with @
string connectionString = @"Integrated Security=SSPI;Persist Security Info=False;
          Initial Catalog=Restorant; Data Source=.\SQLEXPRESS";  
于 2013-01-06T16:46:15.583 回答
0

尝试将数据源名称更改为数据源Data Source=localhost\SQLExpress

于 2013-01-06T16:45:56.610 回答