2011-01-26 4 views
0

Когда я запускаю эту команду в MySQL:Как выполнить параметризованный запрос MySQL в C#?

SELECT * FROM v 
WHERE v.firstname LIKE '%a%' OR middlename LIKE '%a%' OR lastname LIKE '%a%' 

Он возвращает 4 строки в наборе результатов.

Но когда я запускаю тот же запрос, используя параметры в C#, он возвращает только один.

SELECT * FROM v 
WHERE v.firstname LIKE ?word OR middlename LIKE ?word OR lastname 

cmd.Parameters.AddWithValue("word", '%'+key+'%'); 

Я также попытался '%' ?word '%' и добавления параметра (ключ) только, но это не сработало.

Как это сделать?

+0

Как вы запускаете свой DbCommand? Покажите нам следующее заявление после AddWithValue. –

+0

Что означает 'codewar'? – abatishchev

+0

Вы пытались выполнить запрос, закодированный в коде C#? –

ответ

0

Вы используете что-то вроде:

cmd.ExecuteScalar() 

в коде? Он вернет только 1 запись. Попробуйте

cmd.ExecuteReader() 

вместо этого.

0

Похоже, что вам не хватает слова «LIKE?» В конце вашего второго оператора SQL.

0

WHERE v.firstname LIKE? Word ИЛИ middlename LIKE? Word ИЛИ lastname Вы не пропустили последнее слово LIKE? Word?