OracleCommand无法将0转换为布尔值

时间:2013-11-29 19:22:24

标签: c# oracle11g

我得到的指定演员表无效。当我执行以下代码时:


incident.InjuryPM = Convert.IsDBNull(reader [“CAD_INJ_TIME_PM”])? false:Convert.ToBoolean(reader [“CAD_INJ_TIME_PM”]);


  • incident.InjuryPM属性属于类型boolean。
  • CAD_INJ_TIME_PM的类型是VARCHAR2(2字节)。
  • CAD_INJ_TIME_PM的值为“0”。
  • 读者类型为OracleDataReader

我是Oracle 11g的新手,所以也许我错过了一些东西。感谢

2 个答案:

答案 0 :(得分:2)

在C#中,Convert.ToBoolean()不接受字符串“0”或“1”,只接受“true”或“false”的变体。因此,如果您有一个varchar(2)字符串作为列类型,您可能需要先转换为int:

Convert.ToBoolean(Convert.ToInt32(reader["CAD_INJ_TIME_PM"]))

答案 1 :(得分:1)

我很确定你正在寻找这个:

reader.IsDbNull(idx) ? false : Convert.ToBoolean(Convert.ToInt32(reader[idx]));

其中idx是您所追求的字段的索引。