Verwendung der String-Variablen in der SQL-Anweisung

8

Ich habe eine WPF-Anwendung, in der ich

bekomme %Vor%

Ich möchte dies in der folgenden Abfrage verwenden

%Vor%

Wie soll ich die Variable jemand in der Abfrage verwenden?

    
Viktor Vice 31.08.2011, 21:50
quelle

4 Antworten

13

Sie können das einfach tun

%Vor%

Aber das ist schlecht und öffnet Sie SQL Injection

Sie sollten nur eine parametrisierte Abfrage

verwenden

Etwas wie das sollte dich beginnen

%Vor%

Von Jon Skeets Antwort, da seine vollständiger war als meine

Weitere Informationen finden Sie in den Dokumenten für SqlCommand.Parameters Informationen.

Grundsätzlich sollten Sie Ihre Werte nicht aus verschiedenen Gründen in das SQL einbetten:

  • Es ist unelegant, Code und Daten zu mischen
  • Es öffnet sich für die SQL-Injektion Angriffe, es sei denn, Sie sind sehr vorsichtig bei der Flucht
  • Sie müssen sich Gedanken über die Formatierung und die Details für Dinge wie Zahlen, Daten und mal usw.
  • Wenn die Abfrage mit nur den Werten identisch bleibt Ändern, der Optimierer hat weniger Arbeit zu tun - es kann nachschlagen vorherige optimierte Abfrage direkt, da es eine perfekte Übereinstimmung sein wird Begriffe des SQL.
msarchet 31.08.2011, 21:56
quelle
11

Sie sollten eine parametrisierte SQL-Abfrage verwenden:

%Vor%

Weitere Informationen finden Sie in den Dokumenten für SqlCommand.Parameters Informationen.

Grundsätzlich sollten Sie Ihre Werte nicht aus verschiedenen Gründen in das SQL einbetten:

  • Es ist unelegant, Code und Daten zu mischen
  • Es öffnet sich für SQL-Injection-Angriffe, es sei denn, Sie sind sehr vorsichtig beim Entkommen
  • Sie müssen sich Gedanken über Formatierungs- und Detailinformationen für Dinge wie Zahlen, Daten und Zeiten usw. machen
  • Wenn die Abfrage gleich bleibt und nur die Werte geändert werden, hat der Optimierer weniger zu tun. Er kann die vorherige optimierte Abfrage direkt nachschlagen, da sie eine perfekte Übereinstimmung mit SQL darstellt.
Jon Skeet 31.08.2011 21:53
quelle
1

Am einfachsten ist es, eine C # Prepared sql. Beispiel für diesen Beitrag . Sie müssen sich keine Gedanken darüber machen, ob Sie die Zeichen in Ihrer SQL-Zeichenfolge oder irgendetwas

umgehen können     
Ali 31.08.2011 21:54
quelle
-1
%Vor%     
Ashim 06.03.2018 06:21
quelle

Tags und Links