查找数据表的空值



我正在构建一个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。

最新更新