我正在尝试从 VB.Net 转换为 C# 以从 sql 数据库中读取数据。以下代码给了我一个错误。“不能将类型 'string' 隐式转换为 'bool'”。它在 VB 中运行良好。如何将此语句转换为 C#?
chkNewEmployee.Checked = dr["chkNewEmployee"].ToString();
chkNewEmployee.Checked = Convert.ToBoolean(dr["chkNewEmployee"]);
true或false,这反映了通过为基础类型的值调用 IConvertible.ToBoolean 方法返回的值。如果 value 为 null,则该方法返回 false。
根据您的需要,您可能想尝试bool.Parse或bool.TryParse
更新
bool.Parse,bool.TryParse和Convert.ToBoolean:
true或者falseFormatException在转换失败的情况下抛出true或者falsetrue,否则返回falseout bool result)保存true,false或null(false在 的情况下返回null)FormatException在转换失败的情况下抛出只需这样做:
chkNewEmployee.Checked = Convert.ToBoolean(dr["chkNewEmployee"]);
它完成了。
我会尝试下面的代码段。看看它是否有效。如果没有,它应该返回一个异常。
try {
chkNewEmployee.Checked = Convert.ToBoolean(dr["chkNewEmployee"]);
}
catch (FormatException) {
Console.WriteLine("Bad Format");
}
catch (InvalidCastException) {
Console.WriteLine("No Conversion");
}