我正在尝试使用以下方法从数据库强制转换为布尔值:
bool? primaryFlag = reader["primaryflag"] is DBNull ? null: (bool?)reader["primaryflag"];
我不断收到指定的强制转换无效异常。我使用的方法有什么问题?
最佳答案
您不能将其直接转换为Nullable<bool>
。但是您可以使用as
运算符:
bool? primaryFlag = reader["primaryflag"] as bool?;
之所以可行,是因为如果值
DBNull.Value
强制转换失败,那么它将正确分配bool?
的null
。或以下不太优雅的版本:
bool? primaryFlag = null;
int colOrdinal = reader.GetOrdinal("primaryflag");
if(!reader.IsDBNull(colOrdinal))
primaryFlag = reader.GetBoolean(colOrdinal);
关于c# - 如何在C#中从数据读取器强制转换为 boolean boolean 值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33548531/