C#.Net中的连接字符串

C#.Net中的连接字符串,c#,.net,sql-server,connection-string,C#,.net,Sql Server,Connection String,//SQL部分 第1行:string dd=“Data Source=。\SQLEXPRESS;AttachDbFilename=“C:\Users\HEX\Documents\Visual Studio 2008\Projects\cventry\u address\u book\u 0.1\cventry\u address\u book\u 0.1\addressbook.mdf”;集成安全性=True;连接超时=30;用户实例=True” 第2行:SqlConnection sqlcon

//SQL部分

第1行
string dd=“Data Source=。\SQLEXPRESS;AttachDbFilename=“C:\Users\HEX\Documents\Visual Studio 2008\Projects\cventry\u address\u book\u 0.1\cventry\u address\u book\u 0.1\addressbook.mdf”;集成安全性=True;连接超时=30;用户实例=True”

第2行
SqlConnection sqlconobj=新的SqlConnection(dd)

第3行
sqlconobj.Open()

---------错误输出------------

意外字符“\”


您应该通过在字符串前面加
@
字符来转义该字符串。此外,还应将SqlConnection实例包装在using语句中:

string dd = @"Data Source=.\SQLEXPRESS;AttachDbFilename=""C:\Users\HEX\Documents\Visual Studio 2008\Projects\cventry_address_book_0.1\cventry_address_book_0.1\addressbook.mdf"";Integrated Security=True;Connect Timeout=30;User Instance=True";
using (SqlConnection sqlconobj = new SqlConnection(dd))
{
    sqlconobj.Open();
}
尝试:


您需要使用
@
字符对字符串进行转义。或者,您可以将单个
\
替换为
\

您需要转义
\
字符。 使用以下命令:

string dd = @"Data Source=.\SQLEXPRESS;AttachDbFilename="C:\Users\HEX\Documents\Visual Studio 2008\Projects\cventry_address_book_0.1\cventry_address_book_0.1\addressbook.mdf";Integrated Security=True;Connect Timeout=30;User Instance=True";
更多信息:

在C#中,反斜杠字符具有特殊含义。
您需要将其加倍或在整个字符串前面加上逐字字符@
而且不需要在文件名前后加双引号。
格式化规则(结尾分号)允许AttachDbFileName的路径或文件名中使用空格

 string dd = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + 
             @"C:\Users\HEX\Documents\Visual Studio 2008\" + 
             @"Projects\cventry_address_book_0.1\cventry_address_book_0.1" + 
             @"\addressbook.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";

这应该是您的查询连接字符串

string dd = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + 
                            @"C:\Users\HEX\Documents\Visual Studio 2008\Projects\cventry_address_book_0.1\cventry_address_book_0.1\addressbook.mdf" 
                            + ";Integrated Security=True;Connect Timeout=30;User Instance=True";

即使您使用了
@
,引号仍然需要使用
转义。“
@jlris您尝试过吗?结尾的分号消除了normal的歧义paths@Steve报价可能根本没有必要;我不确定这一点,这不是我的评论所指的。我可以肯定的是,Darren的答案是无效的(比如,不会编译),因为它在字符串中间有未替换的引号。从未有机会使用Sql Server db进行测试,但我可以向您保证,放置在带有空格的路径中的简单Access数据库不需要.net中的任何双引号和逐字读取字符串
string dd = "Data Source=.\\SQLEXPRESS;AttachDbFilename=\"C:\\Users\\HEX\\Documents\\Visual Studio 2008\\Projects\\cventry_address_book_0.1\\cventry_address_book_0.1\\addressbook.mdf\";Integrated Security=True;Connect Timeout=30;User Instance=True";
string dd = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + 
                            @"C:\Users\HEX\Documents\Visual Studio 2008\Projects\cventry_address_book_0.1\cventry_address_book_0.1\addressbook.mdf" 
                            + ";Integrated Security=True;Connect Timeout=30;User Instance=True";