查找数据表的空值
Find the null value of a Datatable
我正在构建 AWS lambda 函数 .net core。
我遇到的问题是,当数据表的行/列中没有数据时,我仍然得到一个计数,反过来 getData != null && getData.Count() > 0
默认为 true 然后抛出一个 NullRefrenceError
由于进入循环时该值为 null,我尝试检查数据表中的多个 null 类型,它们仍然默认为 true。
是否有另一种方法来检查可为空的值,以避免赋值导致数据表列/行中的错误。
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()
将在源为空时抛出 NullReferenceException
。所以当你这样做时
string yourItem = item.Field<String>("email").ToString();
和 item.Field<String>("email")
部分 returns 为 null,您将得到该异常。
幸运的是,那个 ToString()
调用是多余的,所以您可以简单地删除它,只需要:
string yourItem = item.Field<String>("email");
请记住,yourItem
现在可以为 null。
我正在构建 AWS lambda 函数 .net core。
我遇到的问题是,当数据表的行/列中没有数据时,我仍然得到一个计数,反过来 getData != null && getData.Count() > 0
默认为 true 然后抛出一个 NullRefrenceError
由于进入循环时该值为 null,我尝试检查数据表中的多个 null 类型,它们仍然默认为 true。
是否有另一种方法来检查可为空的值,以避免赋值导致数据表列/行中的错误。
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()
将在源为空时抛出 NullReferenceException
。所以当你这样做时
string yourItem = item.Field<String>("email").ToString();
和 item.Field<String>("email")
部分 returns 为 null,您将得到该异常。
幸运的是,那个 ToString()
调用是多余的,所以您可以简单地删除它,只需要:
string yourItem = item.Field<String>("email");
请记住,yourItem
现在可以为 null。