今天,程序突然出现下面的错误:
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.IndexOutOfRangeException: 在位置 0 处没有任何行。
源错误:
“/auto.dg.gd.cn”应用程序中的服务器错误。
在位置 0 处没有任何行。
行 32: private void Data_Binding()
行 33: ...{
行 34: DataRow dr = objSynopsis.GetSynopsisByMember(_memberKey).Rows[0];
行 35: this.lblCompanyName.Text = dr["CompanyName"].ToString();
行 36: this.lblAddress.Text = dr["Address"].ToString();源文件: d:/auto.dg.gd.cn/CheHang/CheHangPageFooter.ascx.cs 行: 34
堆栈跟踪:
[IndexOutOfRangeException: 在位置 0 处没有任何行。]
System.Data.RBTree`1.GetNodeByIndex(Int32 userIndex) +148
System.Data.RBTree`1.get_Item(Int32 index) +18
System.Data.DataRowCollection.get_Item(Int32 index) +12
CheHang_CheHangPageFooter.Data_Binding() in d:auto.dg.gd.cnCheHangCheHangPageFooter.ascx.cs:34
CheHang_CheHangPageFooter.Page_Load(Object sender, EventArgs e) in d:auto.dg.gd.cnCheHangCheHangPageFooter.ascx.cs:29
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +13
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +43
System.Web.UI.Control.OnLoad(EventArgs e) +80
System.Web.UI.Control.LoadRecursive() +49
System.Web.UI.Control.LoadRecursive() +132
System.Web.UI.Control.LoadRecursive() +132
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3750
版本信息: Microsoft .NET Framework 版本:2.0.50727.1378; ASP.NET 版本:2.0.50727.1378
检查经发现,原来“_memberKey”没有取得到值时,就去做数据绑定。
解决的办法,加上一个判断。
if (objSynopsis.GetSynopsisByMember(_memberKey).Rows.Count > 0)
...{
DataRow dr = objSynopsis.GetSynopsisByMember(_memberKey).Rows[0];
//other code
}
本文介绍了一个在进行数据绑定时遇到的IndexOutOfRangeException异常及其解决方法。异常发生在尝试从空数据行集合中获取数据时。通过增加一个简单的条件判断来避免此类异常。
1490

被折叠的 条评论
为什么被折叠?



