0

我正在尝试检查从 SQL 返回的字段是否为空,但我不断在 isDBNull 上收到“Invalid Initializer Member Declarator”

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

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"))
    });
}
4

2 回答 2

5

确保所有属性都在{} 例如初始化

PropertyName = dr.IsDBNull(dr.GetOrdinal("NAME")) ? null : dr.GetString(dr.GetOrdinal("NAME")),
于 2015-11-09T01:32:06.307 回答
1

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

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

Staff staff= new Staff();

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

希望这可以帮助。

于 2013-10-30T18:11:30.453 回答