在线等,在线结贴,在线给分 》》》
对DataGrid中的数据更新时,调试时,出现了以下异常:
索引超出了数组界限。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.IndexOutOfRangeException: 索引超出了数组界限。
源错误:
行 214: catch(Exception ex)
行 215: {
行 216: throw ex;
行 217: }
行 218: finally
源文件:
private void DataGridList_ItemCommand(objectsource,System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName=="Edit")
{
this.DataGridList.EditItemIndex=e.Item.ItemIndex;
DataGrid_bind(lblWhere.Text);
}
if(e.CommandName=="Update")
{
try
{
lianxi.Components.Entity.SalaryEnt _obj=new lianxi.Components.Entity.SalaryEnt ()_obj.f_gz20 =((TextBox)e.Item.Cells[4].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[4].Controls [0]).Text) ;
_obj.f_gz10 =((TextBox)e.Item.Cells[5].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[5].Controls[0]).Text) ;
_obj.f_gz42 =((TextBox)e.Item.Cells[6].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[6].Controls[0]).Text) ;
_obj.f_gz11 =((TextBox)e.Item.Cells[7].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[7].Controls[0]).Text) ;
_obj.f_gz12 =((TextBox)e.Item.Cells[8].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[8].Controls[0]).Text) ;
_obj.f_gz13 =((TextBox)e.Item.Cells[9].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[9].Controls[0]).Text) ;
_obj.f_gz14 =((TextBox)e.Item.Cells[10].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[10].Controls[0]).Text) ;
_obj.f_gz43 =((TextBox)e.Item.Cells[11].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[11].Controls[0]).Text) ;
_obj.f_gz15 =((TextBox)e.Item.Cells[12].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[12].Controls[0]).Text) ;
_obj.f_gz44 =((TextBox)e.Item.Cells[13].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[13].Controls[0]).Text) ;
_obj.f_gz21 =((TextBox)e.Item.Cells[14].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[14].Controls[0]).Text) ;
_obj.f_gz29 =((TextBox)e.Item.Cells[15].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[15].Controls[0]).Text) ;
_obj.f_gz23 =((TextBox)e.Item.Cells[16].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[16].Controls[0]).Text) ;
_obj.f_gz22 =((TextBox)e.Item.Cells[17].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[17].Controls[0]).Text) ;
_obj.f_gz45 =((TextBox)e.Item.Cells[18].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[18].Controls[0]).Text) ;
_obj.f_gz36 =((TextBox)e.Item.Cells[19].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[19].Controls[0]).Text) ;
_obj.f_gz30 =((TextBox)e.Item.Cells[20].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[20].Controls[0]).Text) ;
_obj.f_gz33 =((TextBox)e.Item.Cells[21].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[21].Controls[0]).Text) ;
_obj.f_gz34 =((TextBox)e.Item.Cells[22].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[22].Controls[0]).Text) ;
_obj.f_gz38 =((TextBox)e.Item.Cells[23].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[23].Controls[0]).Text) ;
_obj.f_gz32 =((TextBox)e.Item.Cells[24].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[24].Controls[0]).Text) ;
_obj.f_gz40 =((TextBox)e.Item.Cells[25].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[25].Controls[0]).Text) ;
_obj.f_gz41 =((TextBox)e.Item.Cells[26].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[26].Controls[0]).Text) ;
_obj.f_gz24 =((TextBox)e.Item.Cells[27].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[27].Controls[0]).Text) ;
_obj.f_gzt2 =((TextBox)e.Item.Cells[28].Controls[0]).Text;
_obj.f_gz28 =((TextBox)e.Item.Cells[29].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[29].Controls[0]).Text) ;
_obj.f_gzt1 =((TextBox)e.Item.Cells[30].Controls[0]).Text;
_obj.f_gz16 =((TextBox)e.Item.Cells[31].Controls[0]).Text==""?0:Convert.ToDecimal(((TextBox)e.Item.Cells[31].Controls[0]).Text) ;
_obj.f_gzt5 =((TextBox)e.Item.Cells[32].Controls[0]).Text;
lianxi.Components.BusApp .SalaryApp.Update_Event(_obj);
}
catch(Exception ex)
{
throw ex;
}
finally
{
this.DataGridList.EditItemIndex=-1;
DataGrid_bind(lblWhere.Text);
}
}
}
堆栈跟踪:
[IndexOutOfRangeException: 索引超出了数组界限。]
lianxi.RS.Salary.DataGridList_ItemCommand(Object source, DataGridCommandEventArgs e) in c:\inetpub\wwwroot\lianxi\rs\salary.aspx.cs:216
System.Web.UI.WebControls.DataGrid.OnItemCommand(DataGridCommandEventArgs e)
System.Web.UI.WebControls.DataGrid.OnBubbleEvent(Object source, EventArgs e)
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
System.Web.UI.WebControls.DataGridItem.OnBubbleEvent(Object source, EventArgs e)
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e)
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()
应该是在以上的源文件出错,但是我就是查不出来,大家给看看,最好能修改
注:SalaryEnt为一个类体,f_gz20 等属性都是在其定义好的