我正在构建一个AWS lambda函数.net核心。
我遇到的问题是,当数据表的行/列中没有数据时,我仍然得到一个计数,而getData != null && getData.Count() > 0
默认为true,然后抛出一个NullRefrenceError
,因为当它进入循环时,该值为null,我尝试在数据表中检查多个null类型,它们仍然默认为true。
是否有其他方法可以检查可为null的值,以避免赋值导致数据表列/行中的错误。
public object emailGets ( AType invoiceNum, ILambdaContext context )
{
Connection conn = new Connection();
try
{
string query = "SELECT QUERY";
conn.getData(query);
DataRow[] getData = conn.Dt.Select();
if(getData != null && getData.Count() > 0)
{
foreach (var item in getData)
{
string yourItem = item.Field<String>("email").ToString();
}
return new userData { email = yourItem};
}
else
{
return new userEmailAddress { email = null};
}
} catch ( Exception e )
{
throw e;
}
}
}
public class userEmailAddress
{
public string email { get; set; }
}
ToString()
将在源为null时抛出一个NullReferenceException
。所以当你做时
string yourItem = item.Field<String>("email").ToString();
并且item.Field<String>("email")
部分返回null,则会得到该异常。
幸运的是,ToString()
调用是多余的,所以你可以简单地删除它,只需要:
string yourItem = item.Field<String>("email");
请记住,yourItem
现在可以在此处为null。