解决问题(急):索引超出了数组界限????

nhdxfjl001 2003-08-25 03:13:33
自编了一个构造函数
必须带很多参数
异常详细信息: System.IndexOutOfRangeException: 索引超出了数组界限。

源错误:
mydata.InsertPersonAttestationInfor(参数1,参数2,参数3,....参数20);

请问这是什么错误,如何解决?


...全文
196 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qwbyxw 2003-08-26
  • 打赏
  • 举报
回复
根据
mydata.InsertPersonAttestationInfor(参数1,参数2,参数3,....参数20);
判断
paras只有20项,
所以paras[20]就会所以出错(是不是这儿出错????)

如不对,继续...
你首先要确保paras和parameter都有23项

如不对,继续...
请给出出错的准确位置

按理逐行调试或快速监视即可很快找到问题所在
nhdxfjl001 2003-08-26
  • 打赏
  • 举报
回复
谢谢大家的发贴
我按照 HapTears的方法试过了,但还是说:
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.IndexOutOfRangeException: 索引超出了数组界限。

源错误:


行 66: parameter[20].Value = paras[20];//UserName;
行 67: parameter[21].Value = System.Convert.ToInt32(paras[21]);//IsConfirm;
行 68: parameter[22].Value = paras[22];//ApplyDate;
行 69:RunProcedure("sp_PersonalAttestatioInfor",parameter,out rowsAffected);
行 70: }



源代码如下:
public void InsertPersonAttestationInfor(string[] paras)
{
int rowsAffected;
SqlParameter[] parameter ={new SqlParameter("@ApplicantName",SqlDbType.VarChar,30),
new SqlParameter("@Sex",SqlDbType.Bit),
new SqlParameter("@Birthday",SqlDbType.DateTime),
new SqlParameter("@Country",SqlDbType.VarChar,40),
new SqlParameter("@Province",SqlDbType.VarChar,40),
................(省略)
new SqlParameter("@ApplyDate",SqlDbType.DateTime)
};
parameter[0].Value = paras[0];
parameter[1].Value = System.Convert.ToInt32(paras[1]);
parameter[2].Value = System.Convert.ToDateTime(paras[2]);
parameter[3].Value = paras[3];
................(省略) parameter[22].Value = paras[22];//ApplyDate;
RunProcedure("sp_PersonalAttestatioInfor",parameter,out rowsAffected);
}
请教解决方法(等待中)!!!!!!!!!!!!!!!!!!
danfree 2003-08-25
  • 打赏
  • 举报
回复
这样的原因就是数组超出了最大
firejie 2003-08-25
  • 打赏
  • 举报
回复
下标超过了数组的个数。
cnhgj 2003-08-25
  • 打赏
  • 举报
回复
不是很清楚的告诉你数组超出下标了吗?
HapTears 2003-08-25
  • 打赏
  • 举报
回复
function void InsertPersonAttestationInfor(string[] paras)
{
}
这样就可以了!
horsewww 2003-08-25
  • 打赏
  • 举报
回复
就是说引用的数组的下标的超过了数组的得个数
比如说
int[] a=new int[5];
你却用了a[5],a[6]等
qwbyxw 2003-08-25
  • 打赏
  • 举报
回复
具体的代码呢

要不咋对症下药?

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧