ArgumentoutofRangException 参数名 index

问题描述

下面的代码报这样的错误:ArgumentoutofRangException参数名index,请高手指点,if(header.Rows.Count>0)这一段代码是出错后加的,但我不知道是不是这个原因?Tablewareti=newTableware();tableware_Deliverytd=newtableware_Delivery();stringsql="select*fromsendreceiptheaderwhereupdatestatus=0";stringnewautoid="";DataTableheader=sqlce.ExeSqlForDT(sql);if(header.Rows.Count>0){for(inti=0;i<header.Rows.Count;i++){DataRowdr=header.Rows[i];stringcphid=DBhandle.getcphid(dr["cph"].ToString());ArrayListarys=newArrayList();stringsql1="select*fromsendreceiptdetailwhereupdatestatus=0andautoid='"+dr["autoid"].ToString()+"'";DataTabledetail=sqlce.ExeSqlForDT(sql1);Int16khxs=0;Int16khgs=0;DataTabledt=Tableware.getKHStock(dr["khph"].ToString());if(dt.Rows.Count>0){khxs=Convert.ToInt16(dt.Rows[0]["kcxs"].ToString());khgs=Convert.ToInt16(dt.Rows[0]["kcgs"].ToString());}stringAutoid_ck=td.getAutoid_ck(cphid);newautoid=td.getAutoid_ssh(dr["khph"].ToString(),Autoid_ck);if(newautoid==string.Empty){newautoid=DBhandle.Autoid("D","sshid");//开始保存arys.Clear();arys.Add(newautoid);arys.Add(Autoid_ck);arys.Add(dr["khph"].ToString());arys.Add(dr["khmc"].ToString());arys.Add(cphid);arys.Add(DBhandle.getygbh(dr["sfy"].ToString()));arys.Add(dr["sfydh"].ToString());//sfyp送货员电话arys.Add(dr["tsdh"].ToString());//tsp投诉电话arys.Add(dr["hsxs"].ToString());arys.Add(dr["hsgs"].ToString());arys.Add("");//退换产品型号arys.Add("");//退换箱数arys.Add(dr["return_qty"].ToString());//退换套数arys.Add(khxs);//记录当时客户的箱数arys.Add(khgs);//记录当时客户的盖数arys.Add(userid);arys.Add("N");arys.Add("N");arys.Add(dr["autoid"].ToString());tableware_Delivery.savessh("add",arys);}else{arys.Clear();arys.Add(newautoid);arys.Add(dr["hsxs"].ToString());arys.Add(dr["hsgs"].ToString());arys.Add(dr["return_qty"].ToString());//退换套数arys.Add(khxs);//记录当时客户的箱数arys.Add(khgs);//记录当时客户的盖数tableware_Delivery.savessh("upd",arys);}if(Convert.ToInt32(dr["hsxs"].ToString())>0||Convert.ToInt32(dr["hsgs"].ToString())>0){//更新客户库存arys.Clear();arys.Add(dr["khph"].ToString());arys.Add(dr["khmc"].ToString());arys.Add("");arys.Add("-"+dr["hsxs"].ToString());arys.Add("-"+dr["hsgs"].ToString());//盖数arys.Add(DateTime.Now);arys.Add(userid);tableware_Delivery.updateStock_hk("add",arys);}for(intj=0;j<detail.Rows.Count;j++){Int32xs=0;DataRowdr_detail=detail.Rows[j];Int32gs=Convert.ToInt32(DBhandle.getKHgs(dr_detail["cpxh"].ToString(),dr_detail["xs"].ToString()));if(gs==0){xs=Convert.ToInt32(dr_detail["xs"].ToString());}Int32qty=Convert.ToInt32(dr_detail["qty"].ToString());//更新客户库存arys.Clear();arys.Add(dr["khph"].ToString());arys.Add(dr["khmc"].ToString());stringcpxhid=DBhandle.getcpxhid(dr_detail["cpxh"].ToString());arys.Add(cpxhid);arys.Add(xs);arys.Add(gs);//盖数arys.Add(DateTime.Now);arys.Add(userid);stringppid=DBhandle.getppid(dr_detail["pp"].ToString());arys.Add(ppid);tableware_Delivery.updateStock_hk("add",arys);arys.Clear();arys.Add(newautoid);arys.Add("ssh");arys.Add(cpxhid);if(gs>0){arys.Add(gs);}else{arys.Add(xs);}arys.Add(qty);arys.Add(ppid);decimalprice=Convert.ToDecimal(ti.getkhxydj(dr["khph"].ToString(),dr_detail["cpxh"].ToString()));arys.Add(price.ToString());arys.Add((qty*price).ToString());tableware_Delivery.savecj("",arys);}updatelocalsendreceiptheaderstatus(dr["autoid"].ToString());updatelocalsendreceiptdetailstatus(dr["autoid"].ToString());}}

解决方案

解决方案二:
用索引访问数组或者List,超出数组或者List的范围了。debug编译的话,异常信息里有Stacktrace,有行号。实在不行单步跟踪调试一下,这种错误很容易解决。
解决方案三:

解决方案四:
debug技能还是必须的,另外你只说了异常,没写详细的StackTrace,所以也不知道大概问题发生在哪行

时间: 2024-10-07 19:33:49

ArgumentoutofRangException 参数名 index的相关文章

指定的参数(参数名: index)已超出有效值的范围

问题描述 下面是页面代码:<asp:GridViewID="GridView1"runat="server"AutoGenerateColumns="False"Height="289px"Width="760px"GridLines="None"OnRowCommand="GridView1_RowCommand"DataKeyNames="DIA_

指定的参数已超出有效值的范围。 参数名: index

问题描述 protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse){/e.Row.Cells[1].Text="dfasfdsaf";}protectedvoidGridView1_RowCreated(objectsender,GridViewRowEventArgse){e.Row.Cells[1].Visible=false;}gridview中为什么总是提示指定的参数已超出有效值的范围.参数名

gridview的rowdatebound和其他事件中,指定的参数已超出有效值的范围。 参数名: index [问题点数:40分]

问题描述 protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse){/e.Row.Cells[1].Text="dfasfdsaf";}protectedvoidGridView1_RowCreated(objectsender,GridViewRowEventArgse){e.Row.Cells[1].Visible=false;}gridview中为什么总是提示指定的参数已超出有效值的范围.参数名

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

问题描述 protectedvoidPage_Load(objectsender,EventArgse){stringstr="select*fromdbo.Medicine";dbconectiondb=newdbconection();DataSetds=db.DataAdapter(str);GridView2.DataSource=ds;GridView2.DataBind();GridView2.DataKeyNames=newstring[]{"mno"

Java反射获取方法参数名

问题 在编写一个jws(游戏中心的WEB框架)增强工具的时候,需要得到方法的参数名,而jws本身是可以获取参数名的(不然controller里将请求参数与方法参数绑定的功能也无法实现了). 但使用了jws提供的获取参数名方法时,却出现返回的参数名不正确的问题(只会出现在idea里面): 所以说: 为什么可以获取方法参数? 为什么eclipse和生产环境里不会发生这种问题? 怎样可以正确获取方法的参数名? 问题排查 获取方法参数 众所周知,在java里面,直到java8才可以正式的通过反射获取方法

c# net windowsform-DataTable.Rows.Add(item)抛出错误:“值不能为 null。参数名: key”

问题描述 DataTable.Rows.Add(item)抛出错误:"值不能为 null.参数名: key" 界面功能是选则一个功能范围,然后点击新增,在界面列表中新增一行数据. 错误出现场景:选择同一个功能范围,点击新增后,代码会执行DataTable.Rows.Add(item)这句,大约有20%的概率出现如题错误.具体错误信息如下: 捕捉到 System.ArgumentNullExceptionHResult=-2147467261 _message=值不能为 null. HR

索引和长度必须引用该字符串内的位置。 参数名: length

问题描述 strings="(select'人员基本信息表(HI33)','AAE043','',nvl(sum(casewhenAAE043isnullthen1end),0),count(1),'空值比例:',nvl(trunc(((sum(casewhenAAE043isnullthen1end)/count(1)))*100,2),0)||'%'fromHI33)";string[]b=s.Split(',');stringf=b[0].Substring(b[0].Index

JavaScript函数参数使用带参数名的方式赋值传入的方法

 这篇文章主要介绍了JavaScript函数参数使用带参数名的方式赋值传入的方法,实例分析了javascript函数传递参数的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了JavaScript函数参数使用带参数名的方式赋值传入的方法.分享给大家供大家参考.具体分析如下: 这里其实就是在给函数传递参数的时候,可以使用 参数名:参数值的方式传递,这样不会传递错.不过下面的代码是通过字典来实现的,不像python原封就支持这样的方法 ? 1 2 3 4 function

Java获取代码中方法参数名信息的方法_java

前言 大家都知道随着java8的使用,在相应的方法签名中增加了新的对象Parameter,用于表示特定的参数信息,通过它的getName可以获取相应的参数名.即像在代码中编写的,如命名为username,那么在前台进行传参时,即不需要再编写如@Parameter("username")类的注解,而直接就能进行按名映射. 如下的代码参考所示: public class T { private interface T2 { void method(String username, Stri