4 Stimmen

# in SQL-Abfrage

Ich habe einen anderen Code (C# ASP.Net), der die folgende Abfrage enthält:

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

Ich konnte nicht herausfinden, warum das # hier vor und nach dem Datumsparameter erforderlich ist. Es könnte als normaler String-Wert (zwischen ' und ') übergeben werden. Gibt es einen Vorteil bei der Verwendung von #?

Vielen Dank, Ali

10voto

jle Punkte 9028

Das Pfund-Symbol ist in Ordnung, aber es ist kein ANSI-konformes SQL. Es ist viel besser, die Abfrage mit einem Parameter für das Datum neu zu schreiben.

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

6voto

curtisk Punkte 19336

Handelt es sich um eine Access-Datenbank? Bei dieser Plattform müssen Datumsangaben durch ein "#" eingeklammert werden.

Bearbeiten: Um Ihre Hauptfrage zu beantworten: Nein, sofern es sich nicht um Access handelt, wo es erforderlich wäre, gibt es keinen Vorteil, die Rautenzeichen in der Abfrage so zu lassen, wie sie sind.

3voto

SQLMenace Punkte 128184

Das ist die Zugriffssyntax. Sind Sie sicher, dass Sie eine Verbindung zum Sql-Server herstellen?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X