初始化程序成员声明者无效

时间:2013-10-30 16:16:12

标签: c# asp.net wcf

我正在尝试检查从SQL返回的字段是否为null但是我在isDBNull上继续获得“无效的初始化成员声明符”

这是我的代码,可能是什么造成的?

while (dr.Read())
{
    staff.Add(new Staff()
    {
        id = dr.GetInt32(dr.GetOrdinal("id")),
        dr.IsDBNull(dr.GetOrdinal("NAME")) ? null : dr.GetString(dr.GetOrdinal("NAME")),

        PARENT = dr.GetString(dr.GetOrdinal("PARENT")),
        VALUE = dr.GetString(dr.GetOrdinal("VALUE")),
        VALUETYPE = dr.GetString(dr.GetOrdinal("VALUETYPE"))
    });
}

2 个答案:

答案 0 :(得分:2)

确保在{}内初始化所有属性 e.g。

PropertyName = dr.IsDBNull(dr.GetOrdinal("NAME")) ? null : dr.GetString(dr.GetOrdinal("NAME")),

答案 1 :(得分:1)

初始化成员变量时,不确定是否可以执行条件语句。您实际上是在尝试调用构造函数,该构造函数初始化成员变量。

可能最简单的方法是显式创建对象,然后将其添加到集合中。

Staff staff= new Staff();

将值分配给对象,您可以在其中检查NULL值,然后指定属性。否则将值作为dr["Name"]传递给构造函数,并在构造函数中处理检查。

希望这有帮助。