尝试运行 SQL 查询时,我被告知使用参数来避免 SQLInjection。所以我在玩参数化查询。但事情并没有那么顺利。
这是我的代码:
using (_cmd = _connection.CreateCommand())
{
_connection.Open();
_cmd.CommandText = "SELECT * FROM `users` WHERE `username`= '@username'";
_cmd.Parameters.AddWithValue("@username", _username);
}
据我所知,@username 将替换为我的用户名字段。但事实并非如此,不确定我做错了什么。
最佳答案
您已将参数转换为查询中的字符串文字。
删除@username
周围的撇号:
_cmd.CommandText = "SELECT * FROM `users` WHERE `username`= @username";
关于c# - Parameters.AddWithValue 不会替换我的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33015172/