2010-12-13 4 views
2

Ich habe eine Abfrage wie folgt aus:Können Sie benannte Parameter mit einem OdbcCommand verwenden?

string command = @"SELECT COUNT(*) as cnt, 
(
     SELECT COUNT(*) FROM attend 
     WHERE (DATEPART(WEEKDAY,start_date) = 2 OR DATEPART(WEEKDAY,start_date) = 6) 
      AND empl_no = ? and pay_code = '051' 
       AND start_date BETWEEN ? AND ? 
     ) as frimon 
FROM attend as a 
WHERE empl_no = ? and pay_code = '051'"; 

Die einzige Art, wie ich herausfinden kann ein Parameter angeben, mit einem ? ist (wie bei einem SQLCommand zur Verwendung der @name Methode im Gegensatz). Dies zwingt mich, den gleichen Parameter mehrmals anzugeben (wie für empl_no). Gibt es eine Möglichkeit, benannte Parameter mit OdbcCommands zu verwenden, damit ich nur einmal einen benannten Parameter angeben kann?

Antwort

1

Leider nicht. Eine Möglichkeit wäre es, eine eigene Klasse zu erstellen, in der Sie Ihre eigene Parametersammlung definieren und Token ersetzen können.

+0

Seien Sie vorsichtig, wenn Sie Ihren eigenen Code rollen, um benannte Parameter zu ersetzen, die das Potenzial für SQL-Injection-Angriffe nicht einführen http://en.wikipedia.org/wiki/Sql_injection –