繁体   English   中英

强类型数据集中的DbNull替换为linq中的String

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM