代码如下:
错误提示在这一行: RadioButtonList rbl = (RadioButtonList)(DataList1.Items[int_row1 - 1].FindControl("RadioButtonList1"));//核对单选题答案
            case 3:
                SqlDataAdapter myadapter3 = new SqlDataAdapter("select id,que_answer"
                    + " from tb_Questions where que_type='单选题'and que_lessonid='"
                    + dd1 + "'and que_taotiid='" + dd2 + "'order by id desc", con);
                DataSet myds3 = new DataSet();
                myadapter3.Fill(myds3);
                DataRow[] row1 = myds3.Tables[0].Select();
                //计算单选题成绩
                foreach (DataRow answer1 in row1)
                {
                    int_row1 += 1;
                    RadioButtonList rbl = (RadioButtonList)(DataList1.Items[int_row1 - 1].FindControl("RadioButtonList1"));
                    if (rbl.SelectedValue == "")
                    {
                        this.lblSel.Text = "单选题:0分";
                    }
                    else
                    {
                        if (answer1["que_answer"].ToString().Trim() == rbl.SelectedValue.ToString().Trim())
                        {
                            int_row1Point += 40 / DataList1.Items.Count;
                            this.lblSel.Text = "单选题:" + int_row1Point.ToString() + "分";
                        }
                    }
                }
                break;

解决方案 »

  1.   

    索引越界
    加个判断:
    if(int_row1 < DataList1.Items.Count)
    //执行...
      

  2.   

    数组越界啦,下标从零开始的,到达最后一个item的时候,+1 后-1就还是rowcount,就越界了
      

  3.   

    改成这样,还是出错。是语法错了吗?
    if(int_row1 < DataList1.Items.Count)
    RadioButtonList rbl = (RadioButtonList)(DataList1.Items[int_row1 - 1].FindControl("RadioButtonList1"));
      

  4.   

    提示:Embedded statement cannot be a  declaration or labeled statement