2016-03-05 82 views
-1

我试图插入一些数据从ASP.NET DropDownList和CheckBox到数据库 如果复选框被选中我想插入DropDownList的值 如果没有选中我想通过空值。但在我的表中,它插入0而不是NULL 如果未检查,我如何传递null而不是零(0)? 她是我的代码:asp.net unchecked checkbox pass not value as NULL

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); 
    } 

预先感谢您

回答

2

您当前的代码中插入数据库0因为CheckBoxMorning.Checked是计算结果为0 & 1.你将不得不通过DBNull.Value一个布尔的SqlParameter方法是这样的: -

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

非常感谢。 –

1

添加到@Rahul的前面回答,你的代码可能会被缩短并通过这样做容易理解:

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

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

如果您想重新解释未检查为NULL,则需要另一个类似于IF的结构,并在Checked为false的情况下分配DBNull.value。