异常详细信息: System.ArgumentOutOfRangeException: 长度不能小于 0。参数名: length
“/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();
}
}
每当我点击提交试卷的时候,,就会出错,不知道哪出错了,,在线等待..
--------------------------------------------------------------------------------
长度不能小于 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();
}
}
每当我点击提交试卷的时候,,就会出错,不知道哪出错了,,在线等待..
...全文
相关推荐
C#获取字符串后几位数的方法
主要介绍了C#获取字符串后几位数的方法,实例分析了C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
c#数据结构
c#数据结构(线形表、数组、栈、位标志)
C#编程从入门到精通:环境搭建、核心语法与面向对象实战指南
面向对象编程(OOP)是现代软件开发的核心范式,它通过封装、继承和多态三大特性,将数据与操作数据的方法组织成类与对象,从而提升代码的可维护性、可复用性和可扩展性。其原理在于模拟现实世界,将复杂系统分解为相互协作的实体。这一技术价值在于能够构建出结构清晰、易于管理和协作的大型复杂应用程序,广泛应用于桌面软件、Web后端、游戏开发和企业级系统构建。在工业控制与物联网(IoT)等具体场景中,例如开发上位机软件与海康威视等硬件设备交互时,扎实的OOP基础尤为关键。本文以C#语言为例,系统讲解从开发环境搭建、基础语法
C# SerialPort 类库实战:封装 5 个核心方法,实现可复用串口助手
本文详细介绍了如何使用C# SerialPort类库封装5个核心方法,实现可复用的串口助手工具。通过事件驱动模型、配置与操作分离、线程安全缓冲区管理等工程化实践,提升串口通信的稳定性和开发效率,适用于工业控制、物联网设备调试等场景。
C#工业通信协议实战:从抓包分析到PLC通信,零依赖实现Modbus全功能
面向接口编程,上层业务不关心底层是网口还是串口,切换通信方式零改动。// 读操作// 写操作自己实现Modbus通信,看起来工作量大,实际上核心逻辑不到一千行代码,换来的是完全可控、可调试、可定制的通信能力,遇到非标设备、特殊协议变种也能灵活修改。对于工业上位机开发来说,掌握原生协议实现,不依赖第三方库,是解决现场各种奇葩问题的底气。


