C# 如何知道我在db中选择的行中的名称?

C# 如何知道我在db中选择的行中的名称?,c#,winforms,linq,C#,Winforms,Linq,我用c#创建了一个登录表单,并编写了代码以了解用户名和密码是否正确,我成功了 但是现在我想向登录的人问好 我的数据库:Mysql,我使用linq 这是我的登录按钮代码: var query = from r in db.Users where r.Username.ToString() == txtusername.Text && r.Password == txtpassword.Text select r; if (query

我用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);
使用下面的行吗

MessageBox.Show("Welcom "+query.FirstOrDefault().Firstname);
检查下面的代码

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

query.First().Firstname
就是这么说的……如果您可以将密码与这样的文本字段进行比较,那么您就没有正确地存储它们。密码永远不应该是纯文本的。谢谢,但我刚刚开始学习c#中的linq,它不是我只想学习的程序,但安全问题很重要,这要感谢对我的提醒。这应该有一个空检查:
MessageBox.Show(“Welcom”+query.FirstOrDefault()?.Firstname??string.Empty)
@Stefan不是必需的,他已经在if语句中检查count,那么为什么要使用
FirstOrDefault()
?这是矛盾的。如果使用
FirstOrDefault()
,您会考虑到可能存在接收空值的情况。如果您完全确定它永远不会发生,那么只需使用
First()
。此外,更准确地说,为了清楚起见,请在答案中包含检查计数的if语句。
if (query.Count() > 0)
{
    MessageBox.Show("Welcome " + query.FirstOrDefault().Firstname);
}