2011-01-26 10 views
0

は、私は、MySQLでこのコマンドを実行すると:C#でMySQLのパラメータ化されたクエリを実行するにはどうすればよいですか?

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

これは、結果セット内の4行を返します。

しかし、C#でパラメータを使用して同じクエリを実行すると、1つだけが返されます。

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

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

私も'%' ?word '%'と唯一のパラメータ(キー)を追加することを試みたが、これはどちらか動作しませんでした。

この作品を作成するにはどうすればよいですか?あなたのコード内

cmd.ExecuteScalar() 

+0

DbCommandをどのように実行しますか? AddWithValueの後の次のステートメントを表示します。 –

+0

'codewar'とは何ですか? – abatishchev

+0

C#コードでハードコードされたクエリを実行しようとしましたか? –

答えて

0

は、あなたのようなものを使用していますか? 1レコードのみを返します。代わりに

cmd.ExecuteReader() 

を試してください。

0

2番目のSQL文の最後に「LIKE?word」がないようです。

0

WHERE v.firstname LIKE?wordまたはmiddlename LIKE?姓または姓 あなたは姓LIKEという単語がありませんか?

関連する問題