【问题标题】:String was not recognized as a valid Boolean Exception [closed]字符串未被识别为有效的布尔异常[关闭]
【发布时间】:2017-09-01 02:54:26
【问题描述】:

我正在将我的 dataRow 值转换为布尔值,但出现以下异常:

字符串未被识别为有效的布尔值

这是代码:

bool a = Convert.ToBoolean(row["ISMOVING"].ToString());

row["ISMOVING"] 包含 1

我做错了什么?

【问题讨论】:

标签: c# boolean tostring type-conversion


【解决方案1】:

row["ISMOVING"] 应该具有这些值中的任何一个"True","False","1"或 "0" ,任何其他值都不能转换为布尔值,您也不必在转换之前将其转换为字符串它是布尔值。

【讨论】:

  • 这是不正确的。 Convert.ToBoolean() 将任何数值转换为bool 值,0 映射到false,任何其他值映射到true。它不会映射任何string 值,除了那些可解析为bool 的值(即"true""false""True""False")。有关该方法如何工作的正确描述,请参阅the documentation
  • @PeterDuniho 另外,null 将被转换为false 值。
【解决方案2】:

删除ToString() 调用

bool a = Convert.ToBoolean(row["ISMOVING"]);

【讨论】:

  • row["ISMOVING"] 也可以包含“真”。那么它会起作用吗?
  • @HumaAli,你试过了吗?首先尝试...此外,您的列类型是什么?是bit 还是vaechar?不能都对吗?编辑您的帖子并首先包含这些信息。
  • @HumaAli,顺便回答你的问题......是的,它会
  • 好的bit。感谢您的回答。它有效
猜你喜欢
  • 2017-02-21
  • 1970-01-01
  • 2016-09-13
  • 2022-01-25
  • 1970-01-01
  • 1970-01-01
  • 2017-01-03
  • 1970-01-01
相关资源
最近更新 更多