gpt4 book ai didi

linq-to-sql - LINQ 查询中没有结果给出 IF ELSE 语句中未设置对象实例的对象引用

转载 作者:行者123 更新时间:2023-12-02 21:50:22 25 4
gpt4 key购买 nike

我有以下代码:

        DataClasses1DataContext db = new DataClasses1DataContext();

var UserInfo = db.Users.FirstOrDefault(u => u.Email == TextBox1.Text);

if (UserInfo.Email != null)
{
Label2.Text = "Email is not null";
}
else
{
Label2.Text = "Email is null";
}

如果表中存在电子邮件地址,则会成功打印“Email is not null”。但是,如果没有匹配的记录,我会收到第 29 行的“对象引用未设置为对象实例”错误:

Line 27:             DataClasses1DataContext db = new DataClasses1DataContext();Line 28: Line 29:             var UserInfo = db.Users.FirstOrDefault(u => u.Email == TextBox1.Text);Line 30: Line 31:             if (UserInfo.Email != null)

我被难住了!任何帮助将不胜感激。

最佳答案

您可能想检查谓词中是否为 null,但如果它是真正的数据库,则不需要:

var UserInfo = db.Users.FirstOrDefault(u => u != null &&
u.Email == TextBox1.Text);

但更重要的是,第 31 行的代码中有一个明显的错误。如果 FirstOrDefault 没有找到匹配的对象,它不会返回所有字段都设置为 null 的对象。它返回一个空引用 - 即根本没有对象。您需要对此进行测试:

if (UserInfo != null)
{
Label2.Text = "User found";
}
else
{
Label2.Text = "User not found";
}

在我看来,您应该首先修复明显的错误,然后如果仍有问题,请使用正确的代码更新您的问题。

关于linq-to-sql - LINQ 查询中没有结果给出 IF ELSE 语句中未设置对象实例的对象引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2250229/

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