2013-03-16 2 views
3

// SQL ЧАСТЬСтрока соединения в 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";

Линия 2: SqlConnection sqlconobj = new SqlConnection(dd);

Линия 3: sqlconobj.Open();

- -------- Ошибки вывода ------------

Неожиданный символ '\'

+0

фотографии [строковые литералы] (HTTP: //msdn.microsoft.com/en-us/library/aa691090%28v=vs.71%29.aspx) в .net и читаем о строке verbatim –

ответ

1

Вы должны бежать строки, предваряя его с @ характером. Кроме того, вы должны обернуть экземпляр SqlConnection в использовании высказыванием:

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

Try:

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

+0

@JLRishe вы пробовали? Конечная точка с запятой устраняет двусмысленность нормальных путей – Steve

+1

@Steve Кавычки могут вообще не понадобиться; Я не уверен в этом, и это не то, о чем говорил мой комментарий. То, что я могу сказать наверняка, заключается в том, что ответ Даррена был недействительным (как, например, не скомпилировал), как он вошел в него, потому что у него были невыраженные цитаты из средней строки. – JLRishe

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# обратной косой черты имеет особое значение.
Вам нужно удвоить или префикс всей строки с символом 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"; 
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";