高手帮忙[索引超出范围。必须为非负值并小于集合大小。]
case 1:SqlDataAdapter myadapter3 = new SqlDataAdapter("select id,que_answer,marks"
+ " from tb_Questions where que_type='单选题' and que_lessonid='"
+ dd2 + "'and que_professionid='" + dd1 + "'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 rbl1 = (RadioButtonList)(DataList1.Items[int_row1 - 1].FindControl("RadioButtonList1")); //此处出现错误 if (rbl1.SelectedValue == "")
{
this.lblSel.Text = "单选题:0分";
pp = DataList1.Items.Count;
}
else
{
if (answer1["que_answer"].ToString().Trim() == rbl1.SelectedValue.ToString().Trim())
{
//int_row1Point += 40 / DataList1.Items.Count;
int_row1Point += int.Parse(answer1["marks"].ToString().Trim());
int_count += 1;
pp = DataList1.Items.Count;
this.lblSel.Text = "单选题:" + int_row1Point.ToString() + "分";
}
}
}
break;
索引超出范围。必须为非负值并小于集合大小。
参数名: index
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
参数名: index
高手指点。。。 --------------------编程问答-------------------- 看DataList1.Items.Count有多少行再找 --------------------编程问答--------------------
row1.Count=0;所以超出索引
加入判断
if(row1.Count>0)--------------------编程问答-------------------- 请问你的 int_row1 在哪里定义的?初始值是多少?
{
//
}
--------------------编程问答-------------------- [int_row1 - 1]这里有错 --------------------编程问答-------------------- int_row1一定是0,断点跟踪一下
补充:.NET技术 , ASP.NET