2013-03-16 60 views
3

// SQL PART连接字符串在C#.NET

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

行2SqlConnection sqlconobj = new SqlConnection(dd);

线3sqlconobj.Open();

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

意外的字符 '\'

+0

结帐[字符串常量](HTTP: //msdn.microsoft.com/en-us/library/aa691090%28v=vs.71%29.aspx).net和阅读有关逐字字符串 – 2013-03-16 17:57:15

回答

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(); 
} 
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"; 

您需要使用@字符转义字符串。另外,你可以用\\替换单个\

+0

即使您使用'@',引号仍然需要转义使用'“”'。 – JLRishe 2013-03-16 17:52:15

+0

@JLRishe你试过了吗?结尾的分号消除了正常路径的不明确性 – Steve 2013-03-16 17:56:53

+1

@Steve引号可能根本不需要;我不确定这一点,这不是我的评论所指的。我可以肯定的是,Darren的回答是无效的(因为它不会编译)他输入它的方式,因为它没有使用引号midstring。 – JLRishe 2013-03-16 18:08:11

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

更多:String literals

3

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