Правильный способ форматирования SQL-запросов в приложении C # - PullRequest
4 голосов
/ 10 января 2012

У меня есть консольное приложение C #, которое выполняет несколько запросов к серверу базы данных.

Мне часто нужно изменить SQL и хотел бы просто скопировать / вставить SQL из моего редактора SQL в мой источник C # без необходимости каждый раз переформатировать SQL.

В настоящее время SQL все в одной строке ... как показано ниже:

  OleDbDataAdapter da_ssm_servers = new OleDbDataAdapter(@"SELECT * FROM mytable ORDER BY Server;", connSSM);

SQL намного длиннее, чем выше, с большим количеством таблиц JOINS и т. Д.

Я хотел бы сохранить форматирование, но на самом деле не хочу возвращаться и добавлять кавычки вокруг каждой строки и т. Д.

Если у кого-то есть какие-либо рекомендации и примеры, мы будем благодарны.

Ответы [ 4 ]

8 голосов
/ 10 января 2012

Я делаю это так:

string sql = @"
    SELECT * 
    FROM mytable 
    ORDER BY Server";
OleDbDataAdapter da_ssm_servers = new OleDbDataAdapter(sql, connSSM); 
2 голосов
/ 10 января 2012

Я бы рекомендовал держаться подальше от специальных запросов, которые вы используете, и использовать хранимые процедуры .Это будет разъединять ваш дизайн, а также ограничивать ваши вызовы именем хранимой процедуры и, возможно, параметрами.

Но если вам нужно использовать специальные запросы, то используйте префикс @, и вы сможете использовать несколько строкбез необходимости заключать каждую строку в кавычки.

0 голосов
/ 10 января 2012

Кажется, что ваш код должен работать нормально.Когда вы начинаете свою строку с @, вы используете дословную строку.Разрывы и форматирование строк сохраняются, и вам не нужно заключать каждую строку в кавычки.Вам просто нужна заключительная цитата.

0 голосов
/ 10 января 2012

До тех пор, пока вы используете синтаксис @, вы можете иметь несколько хороших интервалов в SQL.

Например

string sql = @"select 
                  colA, 
                  colB, 
                  colC
               from
                  tableX
                  inner join tableY
                     on tableX.colA = tableY.colA
               where
                  colB > 20;"   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...