无法隐式转换类型';字符串';到';bool';复选框
本文关键字:字符串 bool 复选框 转换 类型 | 更新日期: 2023-09-27 18:21:55
我正在尝试从VB.Net转换为C#,以便从sql数据库中读取数据。下面的代码给了我一个错误"无法将类型'string'隐式转换为'bool'"。它在VB中运行得很好。如何将此语句转换为C#
chkNewEmployee.Checked = dr["chkNewEmployee"].ToString();
chkNewEmployee.Checked = Convert.ToBoolean(dr["chkNewEmployee"]);
ToBoolean:
true或false,这反映了通过调用值的基础类型的IConvertile.ToBoolean方法如果值为null,则该方法返回false
根据您的需要,您可能想要尝试bool.Parse
或bool.TryParse
更新
bool.Parse
、bool.TryParse
和Convert.ToBoolean
:
- 不区分大小写
- 忽略前导和尾随空白
bool.Parse
:
- 正确的值是
true
或false
- 转换失败时抛出
FormatException
bool.TryParse
:
- 正确的值是
true
或false
- 在转换失败的情况下不引发异常
- 如果转换成功,则返回
true
,否则返回false
- 转换结果通过第二个参数(
out bool result
)保存
Convert.ToBoolean
:
- 正确的值为
true
、false
或null
(在null
的情况下返回false
) - 转换失败时抛出
FormatException
我会尝试下面的代码段。看看它是否有效。如果没有,它应该返回一个异常。
try {
chkNewEmployee.Checked = Convert.ToBoolean(dr["chkNewEmployee"]);
}
catch (FormatException) {
Console.WriteLine("Bad Format");
}
catch (InvalidCastException) {
Console.WriteLine("No Conversion");
}
只需这样做:
chkNewEmployee.Checked = Convert.ToBoolean(dr["chkNewEmployee"]);
它完成了。