我正在尝试从 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
或者false
FormatException
在转换失败的情况下抛出true
或者false
true
,否则返回false
out 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");
}