Parameters.AddWithValue不替换我的值

时间:2015-10-08 11:59:49

标签: c# sql

尝试运行SQL查询,我被告知使用Parameters来避免SQLInjection。所以我正在玩参数化查询。但它并没有那么好。

这是我的代码:

using (_cmd = _connection.CreateCommand())
{
    _connection.Open();
    _cmd.CommandText = "SELECT * FROM `users` WHERE `username`= '@username'";
    _cmd.Parameters.AddWithValue("@username", _username);
}

据我所知,@ username将替换为我的用户名字段。但事实并非如此,不确定我做错了什么。

2 个答案:

答案 0 :(得分:3)

您已将参数转换为查询中的字符串文字。

@username左右删除撇号:

_cmd.CommandText = "SELECT * FROM `users` WHERE `username`= @username";

答案 1 :(得分:3)

'@username'删除引号,否则它将被视为字符串文字。

_cmd.CommandText = "SELECT * FROM `users` WHERE `username`= @username";