RadioButtonList为null值

时间:2014-04-16 04:49:34

标签: c# asp.net

我在网络表单上有一个RadioButtonList和一个提交按钮。当我单击带有RadioButtonList空值的提交按钮时,即没有从RadioButtonList中选择任何内容时,我得到一个例外:

  

对象引用未设置为对象的实例。

这是我到目前为止的代码:

protected void Button2_Click1(object sender, EventArgs e)
{
    //for qstn 1
    con.Open();

    if (RadioButtonList1.SelectedValue == null)
    {
        SqlCommand sqlcmd1 = new SqlCommand("update TEST1 set Your_Answer=NULL where Question='1'", con);
        sqlcmd1.ExecuteScalar();
    }
    else
    {
        string rb1 = RadioButtonList1.SelectedItem.Text;
        SqlCommand cmd1 = new SqlCommand("update TEST1 set Your_Answer='" + rb1 + "' where Question='1'", con);
        cmd1.ExecuteScalar();
    }
}

1 个答案:

答案 0 :(得分:1)

您可以使用SelectedIndex检查是否选择了任何元素,因为SelectedValue不会为null,因此未选择任何元素。在MSDN上声明SelectedItem “一个ListItem,表示从列表控件中选择的最低索引项。默认为null”,如果SelectedItem为null,则无法访问Text属性,并且得到例外。

    if (RadioButtonList1.SelectedIndex == -1)
    {
        SqlCommand sqlcmd1 = new SqlCommand("update TEST1 set Your_Answer=NULL where Question='1'", con);
        sqlcmd1.ExecuteScalar();

    }
    else
    {
        string rb1 = RadioButtonList1.SelectedItem.Text;
        SqlCommand cmd1 = new SqlCommand("update TEST1 set Your_Answer='" + rb1 + "' where Question='1'", con);
        cmd1.ExecuteScalar();
    }}

OR

如Grant Winney所述,您可以在条件中使用SelectedItem而不是SelectedValue。

if (RadioButtonList1.SelectedItem == null)