关于System.IndexOutOfRangeException错误,请问如何解决,谢谢! 100

各位大神好!程序运行出现以下错误提示,请问怎么处理,万谢!“/”应用程序中的服务器错误。Teacherid说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信... 各位大神好!程序运行出现以下错误提示,请问怎么处理,万谢!

“/”应用程序中的服务器错误。
Teacherid说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.IndexOutOfRangeException: Teacherid

源错误:

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

堆栈跟踪:

[IndexOutOfRangeException: Teacherid] System.Data.ProviderBase.FieldNameLookup.GetOrdinal(String fieldName) +6294782
System.Data.SqlClient.SqlDataReader.GetOrdinal(String name) +249
System.Data.SqlClient.SqlDataReader.get_Item(String name) +23
????灲?┫?.敜????痴鸩?(Object , String 働????驜?) +83
EDCOM.WebOffices.Course_Update.??揢??面痵?() +10469
EDCOM.WebOffices.Course_Update.Page_Load(Object sender, EventArgs e) +186
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +42
System.Web.UI.Control.OnLoad(EventArgs e) +132 System.Web.UI.Control.LoadRecursive() +66
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2428
展开
 我来答
一个懂事的Java分享师
2021-10-29 · 计算机项目源码,毕设,小程序开发,商城系统,管理系统,jav...
一个懂事的Java分享师
采纳数:42 获赞数:110384

向TA提问 私信TA
展开全部

从这个异常信息来看System.IndexOutOfRangeException: 在位置 0 处没有任何行,这个明显是溢出异常,所以可能情况有以下两点:

Tables.Rows这两个索引肯定有一个错误,要么Tables集合中0处确是没有表,要么Tables集合中0处的表中没有任何行,就我来说或者的错误可能行比较大。

建议此行代码设置断点,鼠标左键选中ds.Tables对象右键"快速监视"在快速监视中看看ds.Tables对象是否存在如果存在里面表中是否存在数据行。

代码常见错误介绍

1、IOError:I/O错误,当发生严重的I/O错误时,抛出此错误。

2、VirtualMachineError :虚拟机错误,当Java虚拟机崩溃或用尽了它继续操作所需的资源时,抛出该错误。

3、StackOverflowError:栈内存满了,当应用程序递归太深而发生堆栈溢出时,抛出该错误。

4、OutofMemoryError:堆内存满了,因为内存溢出或没有可用的内存提供给垃圾回收器时,Java虚拟机无法分配一个对象,这时抛出该异常。

折柳成萌
高粉答主

2017-09-20 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:4.4万
采纳率:96%
帮助的人:6277万
展开全部
我觉得你好像还有一个问题:传值是否为空的判断。如果没有传递过来id,仍然会执行你下面的查询,因为你定义一个string类型的id,所以在查询时("select * from c_users where id='" + id + "'", con)id还是定义的空值,如果你没定义一个string类型的id,则会报错“未将对象引用设置到对象的实例”。解决方法:最好将下面的语句放到if大括号内,再加上else{response.redirect("../Home.aspx");}这类代码。
第二个就是你没有判断是否查询到结果,就直接输出数据。解决方法楼上都说过了。
示例:
private void Bind()
{
string id = "";
if(Request.QueryString["id"]!=null)
{
id = Request.QueryString["id"].ToString();
SqlConnection con = new SqlConnection("Server=.;database=caiwu;uid=sa;pwd=123");
con.Open();
SqlDataAdapter aaa = new SqlDataAdapter("select * from c_users where id='" + id + "'", con);
DataSet ds = new DataSet();
aaa.Fill(ds);
if(ds.Tables[0[.rows.count > 0)
{
this.User.Text = ds.Tables[0].Rows[0]["users"].ToString();
this.Pwd.Text = ds.Tables[0].Rows[0]["pwd"].ToString();
con.Close();
}
else
{
Response.Write("<script>alert('无查询结果!');</script>");
}
}
else{Response.redirect("../Home.aspx");}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式