You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用用户名密码登录触发System.InvalidOperationException错误求助

解决登录时触发的System.InvalidOperationException: 'sequence contains no elements'错误

这个错误的核心原因是你在使用LINQ的First()/Single()方法查询用户时,数据库中没有匹配当前用户名和密码的记录——这类方法强制要求查询结果必须至少存在一条数据,无匹配时就会抛出该异常。

修复步骤:

  • 将查询用户的First()/Single()替换为FirstOrDefault(),该方法在无匹配结果时会返回null,不会触发异常
  • 增加空值判断,根据结果分支处理登录逻辑

修改后的示例代码:

var user = db.Users.FirstOrDefault(u => u.Username == txtUsername.Text && u.Password == txtPassword.Text);
if (user == null)
{
    // 提示用户登录失败
    MessageBox.Show("用户名或密码不正确");
    return;
}
// 执行登录成功逻辑,比如跳转主页面
this.Hide();
new MainForm().Show();

额外建议:

  • 禁止明文存储用户密码,建议使用BCrypt、SHA256等哈希算法加密后再存入数据库,验证时对输入密码做同样哈希处理后再比对
  • 可添加查询日志,方便排查无匹配结果的具体原因(如用户名输入错误、密码拼写错误等)

内容的提问来源于stack exchange,提问作者Akash Thakur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 23:14:57