无法将类型'string'隐式转换为'bool'CheckBox

时间:2013-07-11 16:09:52

标签: c# asp.net

我正在尝试从VB.Net转换为C#以从sql数据库中读取数据。以下代码给出了一个错误。“无法将类型'string'隐式转换为'bool'”。它在VB中运行得非常好。如何将此语句转换为C#?

chkNewEmployee.Checked = dr["chkNewEmployee"].ToString();

3 个答案:

答案 0 :(得分:7)

chkNewEmployee.Checked = Convert.ToBoolean(dr["chkNewEmployee"]);

ToBoolean

  

true false ,它反映了通过调用返回的值返回的值   底层类型值的IConvertible.ToBoolean方法。 如果   如果value为null,则该方法返回false。

根据您的需要,您可能需要尝试bool.Parsebool.TryParse

<强>更新

bool.Parsebool.TryParseConvert.ToBoolean

  • 不区分大小写
  • 忽略前导和尾随空格

bool.Parse

  • 正确的truefalse
  • 在转换失败的情况下抛出FormatException

bool.TryParse

  • 正确的truefalse
  • 在转换失败的情况下不会抛出异常
  • 如果转化成功,则
  • 返回true,否则false
  • 转换结果通过第二个参数(out bool result
  • 保存

Convert.ToBoolean

  • 正确truefalsenull(如果是false,则返回null
  • 在转换失败的情况下抛出FormatException

答案 1 :(得分:0)

我会尝试下面的代码段。看看它是否有效。如果没有,它应该返回一个例外。

 try {
  chkNewEmployee.Checked = Convert.ToBoolean(dr["chkNewEmployee"]);
 }   
 catch (FormatException) {
   Console.WriteLine("Bad Format");
  }   
  catch (InvalidCastException) {
   Console.WriteLine("No Conversion");
  }   

答案 2 :(得分:0)

就这样做:

chkNewEmployee.Checked = Convert.ToBoolean(dr["chkNewEmployee"]);

已经完成了。