1

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

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

3 回答 3

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

ToBoolean :

truefalse,这反映了通过为基础类型的值调用 IConvertible.ToBoolean 方法返回的值。如果 value 为 null,则该方法返回 false。

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

更新

bool.Parse,bool.TryParseConvert.ToBoolean:

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

bool.Parse

  • 正确的true或者false
  • FormatException在转换失败的情况下抛出

bool.TryParse

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

Convert.ToBoolean

  • 正确的true,falsenull(false在 的情况下返回null)
  • FormatException在转换失败的情况下抛出
于 2013-07-11T16:10:55.877 回答
0

只需这样做:

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

它完成了。

于 2015-01-29T16:54:11.600 回答
0

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

 try {
  chkNewEmployee.Checked = Convert.ToBoolean(dr["chkNewEmployee"]);
 }   
 catch (FormatException) {
   Console.WriteLine("Bad Format");
  }   
  catch (InvalidCastException) {
   Console.WriteLine("No Conversion");
  }   
于 2013-07-11T16:18:26.843 回答