就是说引用的数组的下标的超过了数组的得个数
比如说
int[] a=new int[5];
你却用了a[5],a[6]等

解决方案 »

  1.   

    function void InsertPersonAttestationInfor(string[] paras)
    {
    }
    这样就可以了!
      

  2.   

    谢谢大家的发贴
    我按照 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);
    }
    请教解决方法(等待中)!!!!!!!!!!!!!!!!!!
      

  3.   

    根据
     mydata.InsertPersonAttestationInfor(参数1,参数2,参数3,....参数20);
    判断
    paras只有20项,
    所以paras[20]就会所以出错(是不是这儿出错????)如不对,继续...
    你首先要确保paras和parameter都有23项如不对,继续...
    请给出出错的准确位置按理逐行调试或快速监视即可很快找到问题所在