我正在尝试从VB.Net转换为C#以从sql数据库中读取数据。以下代码给出了一个错误。“无法将类型'string'隐式转换为'bool'”。它在VB中运行得非常好。如何将此语句转换为C#?
chkNewEmployee.Checked = dr["chkNewEmployee"].ToString();
答案 0 :(得分:7)
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
答案 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"]);
已经完成了。