【问题标题】:asp.net unchecked checkbox pass not value as NULLasp.net 未选中的复选框将值传递为 NULL
【发布时间】:2016-03-05 21:47:37
【问题描述】:

我正在尝试将一些数据从 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);
     }

提前谢谢你

【问题讨论】:

    标签: c# asp.net checkbox


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      添加到@Rahul 的答案,您的代码可以通过以下方式变得更短且易于理解:

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

      【讨论】:

        【解决方案3】:

        CheckBoxMorning.Checked 总是会有一个非 NULL 值。

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

        【讨论】:

          猜你喜欢
          • 2019-12-12
          • 1970-01-01
          • 2014-12-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-07-04
          • 2016-03-04
          • 2014-12-29
          相关资源
          最近更新 更多