我在一个Datagrid中设置了编辑,更新,取消按钮,点击编辑后进入编辑界面,更新一些字段的值后,点击更新按钮,总提示“Index  was  out  of  range.  Must  be  non-negative  and  less  than  the  size  of  the  collection.  Parameter  name:  index  ”可是程序是我在家里测试好的,没有任何问题,当把相关DataGrid1_UpdateCommand代码拷贝到公司机器后就出现这个问题,请指教,我的更新按钮源代码如下:  
private  void  DataGrid1_UpdateCommand(object  source,  System.Web.UI.WebControls.DataGridCommandEventArgs  e)  
{  
           String  key  =  DataGrid1.DataKeys[e.Item.ItemIndex].ToString();  
           String  sqlUpdate  =  "update  tblCustomer  set  name=@name,company=@company,address=@address,phone=@phone  where  id=@id";  
           sqlConnection1.Open();  
           SqlCommand  sqlCommand  =  new  SqlCommand(sqlUpdate,sqlConnection1);  
           sqlCommand.Parameters.Add("@id",key);  
           sqlCommand.Parameters.Add("@name",((TextBox)(e.Item.Cells[3].Controls[0])).Text);  
           sqlCommand.Parameters.Add("@company",((TextBox)(e.Item.Cells[5].Controls[0])).Text);  
           sqlCommand.Parameters.Add("@address",((TextBox)(e.Item.Cells[6].Controls[0])).Text);  
           sqlCommand.Parameters.Add("@phone",((TextBox)(e.Item.Cells[7].Controls[0])).Text);  
           sqlCommand.ExecuteNonQuery();  
           sqlConnection1.Close();  
           DataGrid1.EditItemIndex=-1;  
                                     
           String  id,name;  
           id  =  TextBox1.Text;  
           name  =  TextBox2.Text;  
           sqlConnection1.Open();  
           sqlDataAdapter1.SelectCommand.Parameters["@id"].Value=id;  
           sqlDataAdapter1.SelectCommand.Parameters["@name"].Value=name;  
           sqlDataAdapter1.SelectCommand.ExecuteNonQuery();                          
           sqlDataAdapter1.Fill(dsTest1,"tblCustomer");  
           DataGrid1.DataBind();  
}