如何在C#中执行MySQL参数化查询?

时间:2011-01-26 08:11:13

标签: c# sql mysql parameters

当我在MySQL中运行此命令时:

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 '%'并仅添加参数(键),但这也不起作用。

我如何使这项工作?

3 个答案:

答案 0 :(得分:0)

您使用的是:

cmd.ExecuteScalar()
你的代码中的

?它只会返回1条记录。尝试

cmd.ExecuteReader()

代替。

答案 1 :(得分:0)

在你的第二个SQL语句结束时,你似乎错过了“LIKE?word”。

答案 2 :(得分:0)

WHERE v.firstname LIKE?word OR middlename LIKE?word or lastname 你错过姓LIKE?word?