我正在尝试检查从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"))
});
}
答案 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"]
传递给构造函数,并在构造函数中处理检查。
希望这有帮助。