如果表格中不存在某些内容,我正在努力解决问题。我告诉它要查看UserInfo
是否包含user
的信息。
UserInfo Character = db.UserInfoes.SingleOrDefault(a => a.Username == user);
if (Character.Username == null || Character.Username.Length == 0)
{
//do stuff
}
但我在if
声明中收到错误。
对象引用未设置为对象的实例。
答案 0 :(得分:6)
似乎db.UserInfoes.SingleOrDefault(a => a.Username == user)
表达式返回null
,因为它找不到满足过滤条件的任何匹配记录。
这样:
UserInfo Character = db.UserInfoes.SingleOrDefault(a => a.Username == user);
if (Character == null || Character.Username == null || Character.Username.Length == 0)
{
//do stuff
}
答案 1 :(得分:2)
您在评论中写道,您知道db.UserInfoes.SingleOrDefault(a => a.Username == user)
返回null。因此,Character
为null
,您需要单独检查此案例:
if (Character == null || // this line is new
Character.Username == null ||
Character.Username.Length == 0)
{
//do stuff
}
答案 2 :(得分:1)
由于您在if
语句中说错误,Character
为null
。您需要为if (Character == null)
添加支票。
答案 3 :(得分:1)
如果您在if语句中收到错误,则可能是您的搜索: -
UserInfo Character = db.UserInfoes.SingleOrDefault(a => a.Username == user);
未找到任何匹配用户名等于用户的记录。发生这种情况时,Character的值为null
。
您的问题是您尝试在不存在的内容上调用属性。在调用任何成员之前,您需要执行检查以确保Character
不是null
。
if ( Character != null )
{
// Can now safely call properties on the Character object
}
else
{
// Take the appropriate action for circumstances where we can't
// find a user by username
}
答案 4 :(得分:1)
首先你要检查Character是否为null,然后你应该检查是否留在Character中。
if(Character != null)
{
if(Character.Username == null || Character.Username.Lenght == 0)
{
//Do Stuff
}
}
编辑:
或者只是你可以只查看角色,比如
if(Character == null)
{
//Do Stuff
}
答案 5 :(得分:0)
您需要在Character上添加一个测试,以确定它是否为null。如果是这种情况,您将获得您提及的例外情况。
所以就这样做:
if(Character != null)
{
//Your code can now safely call the Properties/Methods/etcetc...
}