asp.net未选中复选框传递非值为NULL

时间:2016-03-05 13:38:45

标签: c# asp.net checkbox

我想尝试将ASP.NET DropDownList和CheckBox中的一些数据插入到数据库中 如果选中复选框,我想插入DropDownList值 如果没有选中,我想传递null。但在我的表中,它插入0而不是NULL 如果未选中,如何传递null而不是零(0)? 她是我的代码:

if (CheckBoxMorning.Checked == true)
   {
     SqlParameter paramMorning = new SqlParameter("@Morning", DropDownMorning.SelectedValue);
     cmd.Parameters.Add(paramMorning);
    }

     else
    {
      SqlParameter paramMorning = new SqlParameter("@Morning", CheckBoxMorning.Checked);
      cmd.Parameters.Add(paramMorning);
     }

提前谢谢

3 个答案:

答案 0 :(得分:2)

您当前的代码是在数据库中插入0,因为CheckBoxMorning.Checked是一个布尔值,其值为0& 1.您必须在 SqlParameter 方法中传递DBNull.Value,如下所示: -

SqlParameter paramMorning = new SqlParameter("@Morning", DBNull.Value);

答案 1 :(得分:1)

添加到@Rahul' swer,您的代码可以通过以下方式缩短并易于理解:

  SqlParameter paramMorning = new SqlParameter("@Morning", CheckBoxMorning.Checked ? DropDownMorning.SelectedValue : DBNull.Value);
  cmd.Parameters.Add(paramMorning);

答案 2 :(得分:0)

CheckBoxMorning.Checked总是具有非NULL值。

如果要将not-checked-ness重新解释为NULL,则需要另一个类似IF的结构,并在Checked为false的情况下分配DBNull.value。