# в SQL-запросе - PullRequest
       26

# в SQL-запросе

4 голосов
/ 29 июня 2009

У меня есть кто-то еще код (C # ASP.Net), который содержит следующий запрос:

string query = "SELECT distinct(destinations.name) as Destinations 
                FROM destinations, flights 
                WHERE destinations.d_ID = flights.d_ID 
                  AND flights.Date = #" + date.ToShortDateString() + "#";

Я не мог найти, почему здесь требуется # до и после параметра даты. Это может быть передано как обычное строковое значение (между 'и'). Есть ли преимущество использования #?

Большое спасибо, Али

Ответы [ 3 ]

10 голосов
/ 29 июня 2009

В символе фунта нет ничего плохого, но он не соответствует ANSI SQL. Вам гораздо лучше переписать запрос с параметром для даты.

ex:

SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT distinct(destinations.name) as Destinations FROM destinations, flights WHERE destinations.d_ID = flights.d_ID AND flights.Date = @dateparm";
cmd.Parameters.Add(new SqlParameter("dateparm",value);
SqlDataReader rdr = cmd.ExecuteReader();
6 голосов
/ 29 июня 2009

Это против базы данных доступа? Эта платформа требует, чтобы даты заключались в квадратные скобки с "#"

Изменить: чтобы ответить на ваш главный вопрос, нет, если только это не Access, где это требуется, нет смысла оставлять хеш-метки в запросе как есть.

3 голосов
/ 29 июня 2009

Это синтаксис доступа, вы уверены, что подключаетесь к серверу sql?

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