我有这个查询表达式,用于连接一些值以进行数据验证
result.AddRange(from string dr in ercDt
select dc.Ordinal.ToString() + "|" + dr);
拥有那个 ercDt[0] 是 DBNull,并且没有更多的行,我收到了这个错误
无法将“System.DBNull”类型的对象转换为“System.String”类型。
我试过这个
result.AddRange(from string dr in ercDt
where dr.Any(x => x != null)
select dc.Ordinal + "|" + dr);
和这个
result.AddRange(from string dr in ercDt
where ercDt.Any(x => x != null)
select dc.Ordinal + "|" + dr);
和这个
result.AddRange(from string dr in ercDt
where !(dr is DBNull)
select dc.Ordinal + "|" + dr);
而且没有运气,
如何防止此错误发生?我根本不需要查询空值,所以在这种情况下我想要的输出将是没有记录。
谢谢
编辑:
基于混淆,我将更好地描述我的案例:
'ercDt' 是一个来自 linq 查询的列表(该 linq 查询的结果是字符串和 DBNull 的极少数情况)转换为列表(使用 ToList() 方法),所以我可以将 'dr' 转换为字符串,但我的问题来自 DBNull 值