![](/img/trans.png)
[英]Conversion failed when converting the varchar value 'System.Web.UI.WebControls.TextBox' to data type int
[英]Conversion failed when converting the varchar value 'System.Web.UI.WebControls.CheckBox' to data type bit
當我檢查其數據類型為bit的復選框時,其值(即1或0)未存儲在數據庫中,它給出了錯誤
將varchar值'System.Web.UI.WebControls.CheckBox'轉換為數據類型位時轉換失敗
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();
你有可能通過控制,而不是其狀態的價值; 你應該傳遞狀態,並在必要時明確轉換它:
CheckBox // a web control, and no standard db type to represent it
CheckBox.Checked // a boolean value, generally translatable to db bit
您很可能將實際控件傳遞給數據庫而不是它的狀態。 您需要使用myCheckBox.Checked
而不僅僅是myCheckBox
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.