问题描述
“/exam”应用程序中的服务器错误。--------------------------------------------------------------------------------索引超出了数组界限。说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息:System.IndexOutOfRangeException:索引超出了数组界限。源错误:行204:else行205:{行206:strPaperContent=strPaperContent+"<tdwidth='10px'nowrap><tdwidth='100%'><inputtype='radio'id='Answer"+intTestNum.ToString()+"'name='Answer"+intTestNum.ToString()+"'value='"+Convert.ToChar(64+k)+"'>"+Convert.ToChar(64+k)+"."+strArrOptionContent[k-1]+"</td>";行207:}行208:strPaperContent=strPaperContent+"</tr>";源文件:c:ExamPersonInfoStartExamAll.aspx.cs行:206堆栈跟踪:[IndexOutOfRangeException:索引超出了数组界限。]EasyExam.PersonalInfo.StartExamAll.Page_Load(Objectsender,EventArgse)inc:ExamPersonInfoStartExamAll.aspx.cs:206System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtrfp,Objecto,Objectt,EventArgse)+14System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Objectsender,EventArgse)+35System.Web.UI.Control.OnLoad(EventArgse)+99System.Web.UI.Control.LoadRecursive()+50System.Web.UI.Page.ProcessRequestMain(BooleanincludeStagesBeforeAsyncPoint,BooleanincludeStagesAfterAsyncPoint)+627--------------------------------------------------------------------------------版本信息:Microsoft.NETFramework版本:2.0.50727.3053;ASP.NET版本:2.0.50727.3053
解决方案
解决方案二:
strArrOptionContent[k-1]这句报错了
解决方案三:
引用1楼starfd的回复:
strArrOptionContent[k-1]这句报错了
开始几天是可以的,就今天突然报错了。这是为什么?
解决方案四:
strArrOptionContent[k-1]
解决方案五:
你得查下你得strArrOptionContent,看到底有多少数据,然后你的k又是怎么的出来的
解决方案六:
引用4楼starfd的回复:
你得查下你得strArrOptionContent,看到底有多少数据,然后你的k又是怎么的出来的
strArrOptionContent=SqlDSTest.Tables["UserAnswer"].Rows[j]["UserAnswer"].ToString().Split(',');for(k=1;k<=intOptionNum;k++){if(k<=strArrOptionContent.Length){strTestContent=Reg.Replace(strTestContent,"<inputtype='text'id='Answer"+intTestNum.ToString()+"'name='Answer"+intTestNum.ToString()+"'size='16'class=filltextvalue='"+strArrOptionContent[k-1]+"'onBlur='textcheck()'title='试题答案中不能包含半角逗号“,”'>",1);}else{strTestContent=Reg.Replace(strTestContent,"<inputtype='text'id='Answer"+intTestNum.ToString()+"'name='Answer"+intTestNum.ToString()+"'size='16'class=filltextvalue=''onBlur='textcheck()'title='试题答案中不能包含半角逗号“,”'>",1);}}}strPaperContent=strPaperContent+"<tdcolspan='2'width='100%'><inputtype='hidden'id='TestTypeTitle"+intTestNum.ToString()+"'name='TestTypeTitle"+intTestNum.ToString()+"'value='"+SqlDSTestType.Tables["PaperTestType"].Rows[i]["TestTypeTitle"].ToString()+"'><inputtype='hidden'id='RubricID"+intTestNum.ToString()+"'name='RubricID"+intTestNum.ToString()+"'value='"+SqlDSTest.Tables["UserAnswer"].Rows[j]["RubricID"].ToString()+"'><inputtype='hidden'id='BaseTestType"+intTestNum.ToString()+"'name='BaseTestType"+intTestNum.ToString()+"'value='"+SqlDSTestType.Tables["PaperTestType"].Rows[i]["BaseTestType"].ToString()+"'><aid='l"+intTestNum.ToString()+"'style='color:black'>"+intTestNum.ToString()+"</a>."+strTestContent+"<fontcolor='red'>("+SqlDSTest.Tables["UserAnswer"].Rows[j]["TestMark"].ToString()+"分)</font></td>";strPaperContent=strPaperContent+"</tr>";if(SqlDSTestType.Tables["PaperTestType"].Rows[i]["BaseTestType"].ToString()=="单选类"){intOptionNum=Convert.ToInt32(SqlDSTest.Tables["UserAnswer"].Rows[j]["OptionNum"]);strArrOptionContent=SqlDSTest.Tables["UserAnswer"].Rows[j]["OptionContent"].ToString().Split('|');for(k=1;k<=intOptionNum;k++){strPaperContent=strPaperContent+"<tr>";if(SqlDSTest.Tables["UserAnswer"].Rows[j]["UserAnswer"].ToString().IndexOf(Convert.ToChar(64+k))>=0){strPaperContent=strPaperContent+"<tdwidth='10px'nowrap><tdwidth='100%'><inputtype='radio'id='Answer"+intTestNum.ToString()+"'name='Answer"+intTestNum.ToString()+"'value='"+Convert.ToChar(64+k)+"'checked>"+Convert.ToChar(64+k)+"."+strArrOptionContent[k-1]+"</td>";}else{strPaperContent=strPaperContent+"<tdwidth='10px'nowrap><tdwidth='100%'><inputtype='radio'id='Answer"+intTestNum.ToString()+"'name='Answer"+intTestNum.ToString()+"'value='"+Convert.ToChar(64+k)+"'>"+Convert.ToChar(64+k)+"."+strArrOptionContent[k-1]+"</td>";}strPaperContent=strPaperContent+"</tr>";}}大神,你帮我看看好吗?我看了半天,判断不出来。
解决方案七:
你在从数组拿数据之前判断你的k-1是否比你数组的长度大?做个判断就不会报错了。然后你要知道为什么这里会出现这个问题。最主要是问题啊。