我正在尝试使用此方法从数据库强制转换为布尔布尔值:
bool? primaryFlag = reader["primaryflag"] is DBNull ? null: (bool?)reader["primaryflag"];
我不断收到指定的强制转换无效异常。我使用的方法有什么问题?
您不能Nullable<bool>
直接将其强制转换为。但是您可以使用as
运算符:
bool? primaryFlag = reader["primaryflag"] as bool?;
之所以有效,是因为如果值是强制转换失败DBNull.Value
,那么它将会正确地分配一个bool?
is null
。
或以下不太优雅的版本:
bool? primaryFlag = null;
int colOrdinal = reader.GetOrdinal("primaryflag");
if(!reader.IsDBNull(colOrdinal))
primaryFlag = reader.GetBoolean(colOrdinal);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句