gpt4 book ai didi

c# MySQL 阅读器不阅读

转载 作者:行者123 更新时间:2023-11-30 22:31:51 26 4
gpt4 key购买 nike

我正在开发一个登录服务器,我遇到了这个问题:我正在使用此 SQL 函数获取用户名匹配的密码:

SELECT password FROM users WHERE username='someusername';

在 c# 上,我使用的是这段代码:

string cmdString = ("SELECT password FROM users WHERE username='@username'");
using (var con = new MySqlConnection(CNN_STRING))
{
con.Open();
var cmd = new MySqlCommand(cmdString, con);
cmd.Parameters.AddWithValue("@username", user);
return cmd.ExecuteScalar().ToString();
}

在 MySQL Workbench 上它正常工作,但在 C# 上我总是得到一个空值,如果我尝试使用 cmd.ExecuteReader 和 Reader.Read() 而不是 cmd.ExecuteScalar() 我得到一个异常说我没有'尽管我运行了 Reader.Read()。

最佳答案

不要将参数占位符放在单引号之间。这样,您的参数占位符就变成了文字字符串,因此没有名为 '@username'

的用户名
string cmdString = ("SELECT password FROM users WHERE username=@username");

也就是说,请注意在数据库中以明文形式存储密码存在很大的安全风险。您应该只存储 hash of the password

关于c# MySQL 阅读器不阅读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33678998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com