使用sqlcommand.parameters.addwithvalue添加参数

时间:2014-02-18 17:29:03

标签: c# asp.net sql sqlcommand

我无法从以下代码中获得任何回复:

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;
}

每次都是假的。

任何人都知道为什么?

2 个答案:

答案 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添加字段名称。