我在网络表单上有一个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();
}
}
答案 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)