gpt4 book ai didi

c# - 将 DBNull 转换为 bool 值

转载 作者:太空狗 更新时间:2023-10-29 19:53:00 26 4
gpt4 key购买 nike

您好,我似乎无法解决此转换操作。我收到错误:

String not recognized as a valid boolean

为线

isKey = Convert.ToBoolean(row["IsKey"].ToString());

我正在使用 DataReader 获取我的表架构。 IsKey 目前在我的数据库中到处都是 null。我基本上想要一个 truefalse 结果。

tableSchema = myReader.GetSchemaTable();     

foreach (DataRow row in tableSchema.Rows)
{
string columnName = row["ColumnName"].ToString();
string columnType = row["DataTypeName"].ToString();
bool isKey = Convert.ToBoolean(row["IsKey"].ToString());

最佳答案

首先,使用此格式从 DataRow 获取值:

string columnName = row.Field<string>("ColumnName");
string columnType = row.Field<string>("DataTypeName");
//this uses your first and second variable call as an example

这强烈定义了返回值并为您进行转换。

您的问题是您有一个列是 bit(或者至少我希望它是一点),但也允许 nulls。这意味着 c# 中的数据类型是 bool?。使用这个:

bool? isKey = row.Field<bool?>("IsKey");

你的第二个问题(在评论中):

if bool? isKey return NULL how can I convert that to false?

最简单的方法是使用 Null-Coalescing Operator

bool isKey = row.Field<bool?>("IsKey") ?? false;

这是说:“首先给我非空的东西,要么是列值,要么是“false”。

关于c# - 将 DBNull 转换为 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18617951/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com