[英]DbNull in strongly typed DataSet replacing with String in linq
我不知道如何用“”替换空格。 因为我在此代码中收到DbNull错误:
var subFields = permCollection
.Where(item=>fields.Contains(item.FBFieldName))
.Select(a=>a.FBSubFieldName)
.ToList();
FBSubFieldName的某些值是空白,有些不是。 有任何想法吗?
由于这是一个强类型的DataTable
,如果您访问一个可为空且为null的属性,则它将引发异常(默认情况下)。
您有一个自动生成的bool
属性,该属性指示是否为null,请与条件运算符(?)一起使用 :
var subFields = permCollection
.Where(item => fields.Contains(item.FBFieldName))
.Select(item => item.IsFBSubFieldNameNull ? "" : item.FBSubFieldName)
.ToList();
可能是这样的:
var subFields = permCollection
.Where(item=>item.FBSubFieldName!=null && fields.Contains(item.FBFieldName) )
.Select(a=>a.FBSubFieldName)
.ToList();
我在这里假定,根据提供的代码, FBSubFieldName
是在Select
查询的相同“数据”的字段。
如果这不是您要的,请进行说明。
您需要在字段上测试DBNull。 尝试入门
var subFields = permCollection
.Where(item=>!(item.FBSubFieldName is System.DBNull) && fields.Contains(item.FBFieldName) )
.Select(a=>a.FBSubFieldName)
.ToList();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.