c# - 查找数据表的空值
问题描述
我正在构建一个 AWS lambda 函数 .net 核心。
我遇到的问题是,当数据表的行/列中没有数据时,我仍然得到一个计数,依次getData != null && getData.Count() > 0
默认为 true 然后抛出一个NullRefrenceError
,因为当它进入循环时值为 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()
NullReferenceException
当源为空时会抛出一个。所以当你这样做时
string yourItem = item.Field<String>("email").ToString();
并且该 item.Field<String>("email")
部分返回 null,您将得到该异常。
幸运的是,该ToString()
调用是多余的,因此您可以简单地删除它并拥有:
string yourItem = item.Field<String>("email");
请记住,yourItem
这里现在可以为空。
推荐阅读
- excel - Excel VBA 根据名称过滤多个工作表并另存为单独的文件
- php - 为什么在 Lumen 上运行 php artisan 时会发生错误
- vba - 循环通过 ODBC 连接
- javascript - 如何从字符串中替换 data-v 属性?
- youtube-api - 关于 Google Apps 脚本中的 YouTube 库配额
- libgdx - 小于 0.01 的比例字体按 0.01 处理
- c# - 编写突变graphql-client c#
- docker - 使用 yaml 锚时有效的 docker-compose 文件未部署为堆栈
- python - 使用 jupyter notebook 运行代码时出现 argparse 错误
- flutter - 参数类型'列表
' 不能分配给 Dart 上的参数类型 'String'.dart(argument_type_not_assignable)