我无法从以下代码中获得任何回复:
using (SqlCommand cmd = new SqlCommand(@"SELECT * FROM users WHERE @parameter LIKE @value", con))
{
cmd.Parameters.AddWithValue("parameter", parameter);
cmd.Parameters.AddWithValue("value", value);
SqlDataReader result = cmd.ExecuteReader();
return result.HasRows;
}
每次都是假的。
任何人都知道为什么?
答案 0 :(得分:0)
这是SQL
中的错误语法SELECT * FROM users WHERE @parameter LIKE @value
应该是
SELECT * FROM users WHERE parameter = @parameter LIKE @value
并添加LIKE参数执行此操作
cmd.Parameters.AddWithValue("@value","%" + value + "%");
答案 1 :(得分:0)
cmd.Parameters.AddWithValue("parameter", parameter);
SqlCommand
会推断parameter
是字符串,因此会引用它,结果是:
SELECT * FROM users WHERE 'xxx' LIKE 'yyy'
这将是错误的。
通过(已消毒的)string.format / concatenation添加字段名称。