C#.Net中的连接字符串
//SQL部分 第1行: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
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";