Skip to main content
 首页 » 编程设计

c#之将 varchar 值 'System.Web.UI.WebControls.CheckBox' 转换为数据类型位时转换失败

2024年02月20日28lidabo

当我检查数据类型为位的复选框时,它的值,即 1 或 0 没有存储在数据库中,它给出了错误

Conversion failed when converting the varchar value 'System.Web.UI.WebControls.CheckBox' to data type bit

if (CheckBoxDT.Checked)  
{  
    cmd.CommandText = " Insert into ClientMaster(doTips) values ( 1 )";     
    cmd.Parameters.AddWithValue("doTips", bool.Parse("1"));  
    cmd.ExecuteNonQuery();  
}  
else  
{  
    cmd.CommandText = "insert into ClientMaster(doTips) values (0)"; 
    cmd.Parameters.AddWithValue("doTips", bool.Parse("0"));  
    cmd.ExecuteNonQuery();  
}  

请您参考如下方法:

向数据库中插入比特值

  cmd.Parameters.Add("@check", SqlDbType.Bit).Value = Convert.ToInt16(CheckBoxDT.Checked); 

检索选中的复选框试试这个

<asp:CheckBox ID="CheckBoxDT" runat="server" Checked='<%#((bool)Eval("isActive"))%>' 
                        Style="color: #FFFFFF" /> 

你的代码

if (CheckBoxDT.Checked)  
{  
cmd.CommandText = " Insert into ClientMaster(doTips) values ( 1 )";     
cmd.Parameters.AddWithValue("doTips", bool.Parse("1"));  
cmd.ExecuteNonQuery();  
}  
else  
{  
cmd.CommandText = "insert into ClientMaster(doTips) values (0)";  
cmd.Parameters.AddWithValue("doTips", bool.Parse("0"));  
cmd.ExecuteNonQuery();  
} 

替换为

cmd.CommandText = "insert into ClientMaster(doTips) values (@doTips)";  
cmd.Parameters.Add("@doTips", SqlDbType.Bit).Value = Convert.ToInt16(CheckBoxDT.Checked) 
cmd.ExecuteNonQuery();