【YMGJ 3】APP--索引超出范围,必须为非负值并小于集合大小

来源:互联网 发布:客户端编程 编辑:程序博客网 时间:2024/04/30 15:57



索引超出范围,必须为非负值并小于集合大小

                                                                                                          --------------------【YMGJ】艺萌管家



程序报错:


“/”应用程序中的服务器错误。


索引超出范围。必须为非负值并小于集合大小。
参数名: index

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

异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
参数名: index

源错误: 

行 270:行 271:                    //#warning 代码生成警告:请检查确认Cells的列索引是否正确行 272:                    if (gridViewWorks.DataKeys[i].Value != null)行 273:                    {行 274:                        idlist += gridViewWorks.DataKeys[i].Value.ToString() + ",";

源文件: E:\Project\lishuang 2016-7-4\lishuang 2016-7-9 223454\Web\Admin\SystemManager\Works\WorksList.aspx.cs    行: 272 

堆栈跟踪: 

[ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。参数名: index]   System.Collections.ArrayList.get_Item(Int32 index) +7493768   System.Web.UI.WebControls.DataKeyArray.get_Item(Int32 index) +12   JCZB.YMGJ.Web.Admin.SystemManager.Works.WorksList.GetSelIDlist() in E:\Project\lishuang 2016-7-4\lishuang 2016-7-9 223454\Web\Admin\SystemManager\Works\WorksList.aspx.cs:272   JCZB.YMGJ.Web.Admin.SystemManager.Works.WorksList.btnDelete_Click(Object sender, EventArgs e) in E:\Project\lishuang 2016-7-4\lishuang 2016-7-9 223454\Web\Admin\SystemManager\Works\WorksList.aspx.cs:244   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565


版本信息: Microsoft .NET Framework 版本:2.0.50727.6421; ASP.NET 版本:2.0.50727.6427




解决方案:


         这主要是在数据传输时,没有进行判断,从提示就可以看出,索引超出范围,必须为非负值并小于集合大小,应该怎么办?


  所以在数据传参时对数值进行判断,让数值不为负值。


     

   

原代码:

            
      if (gridViewWorks.DataKeys[i].Value != null)                  {                      idlist += gridViewWorks.DataKeys[i].Value.ToString() + ",";                  }

 
加上数值判断(gridViewWorks.DataKeys.Count != 0 && gridViewWorks.DataKeys[i].Value != null)之后错误解决:                
 if (gridViewWorks.DataKeys.Count != 0 && gridViewWorks.DataKeys[i].Value != null)                    {                        idlist += gridViewWorks.DataKeys[i].Value.ToString() + ",";                    }  


       



0 0
原创粉丝点击