C#.Net中的连接字符串

3

//SQL部分

第一行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";

第二行SqlConnection sqlconobj = new SqlConnection(dd);

第三行sqlconobj.Open();

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

意外字符'\'


在 .net 中检查 字符串字面量,并阅读有关逐字字符串的内容。 - Krishnaswamy Subramanian
6个回答

3

C#中的反斜杠字符具有特殊含义。
您需要加倍它或在整个字符串前面加上verbatim字符@
不需要在文件名前后添加双引号。
格式规则(结束分号)允许在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";

2

尝试:

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

你需要使用@字符来转义字符串。另一种方法是将单个\替换为\\

即使您使用 @,引号仍然需要使用 "" 进行转义。 - JLRishe
@JLRishe 你试过了吗?结尾的分号可以消除普通路径的歧义。 - Steve
1
@Steve 引号可能根本不必要;我对此并不确定,这也不是我的评论所指的。我可以肯定的是,达伦的答案无效(即无法编译),因为他在字符串中间有未转义的引号。 - JLRishe
从来没有机会与Sql Server数据库进行测试,但我可以向您保证,放置在路径中带有空格的简单Access数据库不需要任何双引号。 - Steve

1
你应该在字符串前加上 @ 字符以转义字符串。此外,你应该将你的 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();
}

0
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";

0
你需要转义反斜杠字符\。使用这个:
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";

更多:字符串字面量


0

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

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";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接