【问题标题】:How to know what is the name in my chosen row in db?如何知道我在 db 中选择的行中的名称是什么?
【发布时间】:2019-10-03 11:17:45
【问题描述】:

我用c#创建了一个登录表单,我写了代码来判断用户名和密码是否正确,我成功了。

但是现在我想和登录的人打个招呼。

我的数据库:Mysql,我为此使用 linq。

这是我的登录按钮代码:

var query = from r in db.Users
            where r.Username.ToString() == txtusername.Text && r.Password == txtpassword.Text
            select r;

if (query.Count() == 1)
{
    MessageBox.Show("Welcom");
}
else
{
   MessageBox.Show("Wrong Username Or password!!!");
}

此代码有效,但我不知道如何将我的消息框更改为:

MessageBox.Show("Welcom" + Firstname);
My database table's columns:
    Rownumber
    Firstname
    Lasttname
    Username
    Password

【问题讨论】:

  • query.First().Firstname
  • 据说...如果您可以将密码与这样的文本字段进行比较,那么您就没有正确存储它们。密码永远不应该是纯文本。
  • 谢谢,但我刚开始在 c# 中学习 linq,它不是我只想学习的程序,但安全问题很重要,感谢我记得。

标签: c# winforms linq


【解决方案1】:

在下面使用你

MessageBox.Show("Welcom "+query.FirstOrDefault().Firstname);

【讨论】:

  • 这应该有一个空检查:MessageBox.Show("Welcom "+query.FirstOrDefault()?.Firstname ?? string.Empty);
  • @Stefan 不需要他已经在 if 语句中检查计数
  • 那为什么要使用FirstOrDefault()?这是矛盾的。如果您使用FirstOrDefault(),您会考虑到您可能会收到空值。如果您绝对确定它永远不会发生,请使用First()。此外,更准确地说,在您的答案中包含检查计数的 if 语句,以明确。
【解决方案2】:

查看以下代码

if (query.Count() > 0)
{
    MessageBox.Show("Welcome " + query.FirstOrDefault().Firstname);
}

【讨论】:

    猜你喜欢
    • 2011-04-13
    • 2023-03-22
    • 1970-01-01
    • 2013-03-11
    • 1970-01-01
    • 2021-06-19
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多