异常详细信息: System.ArgumentOutOfRangeException: 长度不能小于 0。参数名: length

lujaho 2008-06-02 09:04:51
“/test”应用程序中的服务器错误。
--------------------------------------------------------------------------------

长度不能小于 0。参数名: length
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentOutOfRangeException: 长度不能小于 0。参数名: length

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:


[ArgumentOutOfRangeException: 长度不能小于 0。
参数名: length]
System.String.Substring(Int32 startIndex, Int32 length) +172
System.String.Substring(Int32 startIndex) +11
System.Web.UI.WebControls.CheckBoxList.System.Web.UI.IPostBackDataHandler.LoadPostData(String postDataKey, NameValueCollection postCollection)
System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad)
System.Web.UI.Page.ProcessRequestMain()
版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573


代码:
private void Page_Load(object sender, System.EventArgs e)
{
//判断是否已登录
if(Session["stuNo"]==null|| Session["stuNo"].ToString()=="")
{
Response.Redirect("default.aspx");
}

//取得Session中传入的参数
lblLesson.Text=Session["lesson"].ToString();
lblName.Text=Session["stuName"].ToString();
lblNo.Text=Session["stuNo"].ToString();

//下面根据题库生成试卷界面

//产生5个不同的随机数
int i,j,s;
i=1;
s=0;
while(i<6)
{
bool t;
t=true;
Random rand=new Random();
s=rand.Next(1,8);
for(j=1;j<6;j++)
{
if(s==array[j])
{
t=false;
break;
}
}
if(t)
{
array[i]=s;
i++;
}
}
//根据随机数取试题
for(i=1;i<=5;i++)
{
OleDbDataReader dr=DBHelper.GetReader("select * from 题库 where 课程名='"+lblLesson.Text+"'and 题号="+array[i]+"");
int num=1; //num--试题序号
while(dr.Read())
{
//加入题目
Literal Literal1=new Literal();
Literal1.Text=i.ToString()+"."+dr["题目"].ToString()+"("+dr["分数"].ToString()+"分)<br>";
PlaceHolder1.Controls.Add( Literal1 );

//根据题型(单选、复选)决定使用RadioButtonList还是CheckBoxList
ListControl list;
if (dr["类型"].ToString()=="单选")
{
list=new RadioButtonList();
}
else //复选
{
list=new CheckBoxList();

}
//加入选项内容
list.Items.Add( Server.HtmlEncode( dr["选项1"].ToString()) ) ;
list.Items.Add( Server.HtmlEncode( dr["选项2"].ToString()) ) ;
list.Items.Add( Server.HtmlEncode( dr["选项3"].ToString()) ) ;
list.Items.Add( Server.HtmlEncode( dr["选项4"].ToString()) ) ;
PlaceHolder1.Controls.Add( list);
num=num+1;
}
dr.Close();
}
}


每当我点击提交试卷的时候,,就会出错,不知道哪出错了,,在线等待..

...全文
5290 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
crinny 2011-05-23
  • 打赏
  • 举报
回复
我的也出现长度不能小于 0。 参数名: length
是多了一个空格的,
要不你也把多余的空格删掉试试哈
cuilixiao2008 2011-03-15
  • 打赏
  • 举报
回复
我也遇到这个问题啦,能给个具体的答案吗? 愁~ ~ ~ ~ ~ ~
云裳 2010-04-12
  • 打赏
  • 举报
回复
路过,看看
lujaho 2008-06-02
  • 打赏
  • 举报
回复
我调试了一下``前面的代码没什么问题,,当我点击ImageButton1的时候,,调试程序又重头调试,不知道为什么,下一步就出现了上面的错误
我姓区不姓区 2008-06-02
  • 打赏
  • 举报
回复
array中的元素没赋值吧
jun-2013 2008-06-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 l6098627 的回复:]


Response.Redirect("default.aspx");
[/Quote]


不好意思,一回车就好出去了,真是用不惯CSDN 。。。。


Response.Redirect("default.aspx");
这句后最好加是return 终止后面的代码执行。
lujaho 2008-06-02
  • 打赏
  • 举报
回复
namespace test
{
/// <summary>
/// exam 的摘要说明。
/// </summary>
public class exam : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label lblNo;
protected System.Web.UI.WebControls.Label lblName;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.Label Label3;
protected System.Web.UI.WebControls.PlaceHolder PlaceHolder1;
protected System.Web.UI.WebControls.ImageButton ImageButton1;
protected System.Web.UI.WebControls.Label lblLesson;
int[] array=new int[6];
string[] answer=new string[6];




#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.ImageButton1.Click += new System.Web.UI.ImageClickEventHandler(this.ImageButton1_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
private void Page_Load(object sender, System.EventArgs e)
{
//判断是否已登录
if(Session["stuNo"]==null|| Session["stuNo"].ToString()=="")
{
Response.Redirect("default.aspx");
}

//取得Session中传入的参数
lblLesson.Text=Session["lesson"].ToString();
lblName.Text=Session["stuName"].ToString();
lblNo.Text=Session["stuNo"].ToString();

//下面根据题库生成试卷界面

//产生5个不同的随机数
int i,j,s;
i=1;
s=0;
while(i<6)
{
bool t;
t=true;
Random rand=new Random();
s=rand.Next(1,8);
for(j=1;j<6;j++)
{
if(s==array[j])
{
t=false;
break;
}
}
if(t)
{
array[i]=s;
i++;
}
}
//根据随机数取试题
for(i=1;i<=5;i++)
{
OleDbDataReader dr=DBHelper.GetReader("select * from 题库 where 课程名='"+lblLesson.Text+"'and 题号="+array[i]+"");
int num=1; //num--试题序号
while(dr.Read())
{
//加入题目
Literal Literal1=new Literal();
Literal1.Text=i.ToString()+"."+dr["题目"].ToString()+"("+dr["分数"].ToString()+"分)<br>";
PlaceHolder1.Controls.Add( Literal1 );

//根据题型(单选、复选)决定使用RadioButtonList还是CheckBoxList
ListControl list;
if (dr["类型"].ToString()=="单选")
{
list=new RadioButtonList();
}
else //复选
{
list=new CheckBoxList();

}
//加入选项内容
list.Items.Add( Server.HtmlEncode( dr["选项1"].ToString()) ) ;
list.Items.Add( Server.HtmlEncode( dr["选项2"].ToString()) ) ;
list.Items.Add( Server.HtmlEncode( dr["选项3"].ToString()) ) ;
list.Items.Add( Server.HtmlEncode( dr["选项4"].ToString()) ) ;
PlaceHolder1.Controls.Add( list);
num=num+1;
}
dr.Close();
}
}

private void ImageButton1_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{

}


}
}
jun-2013 2008-06-02
  • 打赏
  • 举报
回复


Response.Redirect("default.aspx");
milo4210 2008-06-02
  • 打赏
  • 举报
回复
你的 array 定义的维数是多大?
lujaho 2008-06-02
  • 打赏
  • 举报
回复
array我定义了,忘了贴出来了,恩..试试``
我姓区不姓区 2008-06-02
  • 打赏
  • 举报
回复
length在哪里?
milo4210 2008-06-02
  • 打赏
  • 举报
回复
如果 LS 所说,你的 array 在什么地方定义的?
jun-2013 2008-06-02
  • 打赏
  • 举报
回复

没有看到你 array的定义啊,


你在 if(Session["stuNo"]==null ¦ ¦ Session["stuNo"].ToString()=="") 这句前加个断点,然后调试,看看到底问题是出在哪里?



特别是用了Substring的地方
lujaho 2008-06-02
  • 打赏
  • 举报
回复
没有来吗??555555555自己先顶下`

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧