Почему мы должны писать @ перед sql запросами в asp.net? - PullRequest
2 голосов
/ 01 октября 2010

Предположим, что мы хотим выбрать данные из базы данных, а затем написать запрос для этого.

Пример:

SqlConnection con=new SqlConnection(Connetion name)
string selectPkId = @"SELECT PK_ID FROM TABLE"
SqlCommand cmd=new SqlCommand(selectPkId ,con);

Итак, мой вопрос заключается в том, почему мы в основном используем @ передSQL-запрос. Если я не использую @ до этого, то он снова работает нормально (не выдает никакой ошибки), тогда зачем использовать «@»?Пожалуйста, скажите мне.

1 Ответ

7 голосов
/ 01 октября 2010

Это дословная строка. Это означает, что переводы строки сохраняются, а escape-последовательности игнорируются:

string a = "hello, world";                  // hello, world
string b = @"hello, world";               // hello, world
string c = "hello \t world";               // hello     world
string d = @"hello \t world";               // hello \t world
string e = "Joe said \"Hello\" to me";      // Joe said "Hello" to me
string f = @"Joe said ""Hello"" to me";   // Joe said "Hello" to me
string g = "\\\\server\\share\\file.txt";   // \\server\share\file.txt
string h = @"\\server\share\file.txt";      // \\server\share\file.txt

MSDN Ссылка: Строковые литералы

Это удобно, когда вы хотите сохранить escape-последовательности без необходимости двойного экранирования, например:

string sql = @"UPDATE table SET comment='Hello\nWorld'"
// equivalent to:
string sql = "UPDATE table SET comment='Hello\\nWorld'"

Конечно, это очень простой пример, но в большинстве случаев он даст вам более удобочитаемую строку.

...