我在Web表单上有一个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();
}
}
最佳答案
您可以使用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();
}}
要么
您可以按照Grant Winney所述在条件中使用SelectedItem而不是SelectedValue。
if (RadioButtonList1.SelectedItem == null)