Предложение WHERE в операторе SQL в C # - PullRequest
1 голос
/ 09 февраля 2012

Я пытаюсь определить два условия для предложения WHERE:

WHERE Date = @date (already implemented)
and
WHERE Type = @currenttype

Код следующим образом:

string sql = string.Format("SELECT Result FROM {0} WHERE Date = @date", hostnameclear);

Буду ли я использовать два условия WHERE или могуЯ указываю два условия?

Ответы [ 7 ]

4 голосов
/ 09 февраля 2012

Вам не нужны два предложения WHERE.

Это правильно:

WHERE Date = @date
AND Type = @currenttype

Я бы настоятельно рекомендовал вам использовать параметризованные запросы вместо string.Format, поскольку вы открываете свой код до SQL-инъекция .

Это все еще возможно сделать с динамический SQL (если вы указываете имя таблицы, динамический SQL, вероятно, требуется).

2 голосов
/ 09 февраля 2012

try

SELECT Result FROM {0} WHERE Date = @date and Type = @currenttype 

просто удалите второе "Где" выполнит вашу задачу

1 голос
/ 09 февраля 2012

Вам не нужно второе предложение WHERE: следующие операторы попадают в этот контекст, вы бы соединяли их с AND, а следующее предложение начиналось со следующей команды, скажем ORDER BY.

0 голосов
/ 09 февраля 2012

Лучшая практика при программировании на C #, Java, Perl - обеспечить правильный синтаксис sql с помощью таких инструментов командной строки, как sqlplus или любого другого приглашения sql. Это очень помогает для такого рода ошибок.

0 голосов
/ 09 февраля 2012

У меня было бы одно утверждение.

string sql = string.Format("SELECT Result FROM {0} WHERE Date = @date AND Type = @currenttype", hostnameclear);
0 голосов
/ 09 февраля 2012

Вам нужен только один WHERE:

SELECT Result FROM {0} WHERE Date = @date AND Type = @type
0 голосов
/ 09 февраля 2012
where data = @data AND somecolumn = issomething.

один, где с "и" заявления.

...