报这个错误:索引超出范围。必须为非负值并小于集合大小。
参数名: index

解决方案 »

  1.   

    /// <summary>
        /// 删除操作
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Del")
            {
                int index = Convert.ToInt32(e.CommandArgument);            GridViewRow selectedRow = GridView1.Rows[index];            TableCell contactName = selectedRow.Cells[0];            string contact = contactName.Text;           int   id = Convert.ToInt32(contact);            TTshoppingBll.Sql_DelByNameAndPreID(id);
            }
        }
      

  2.   

    设置
     if (dataGridView1.Rows.Count > 0)
     {
           执行删除操作,就不会报错了..
     }
      

  3.   

    设置
     if (dataGridView1.Rows.Count > 0)
     {
           执行删除操作,就不会报错了..
     }
    这样不行
      

  4.   

    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Del")
            {
                int index = Convert.ToInt32(e.CommandArgument);
                //估计是index多了一位了....
                GridViewRow selectedRow = GridView1.Rows[index-1];
            
                TableCell contactName = selectedRow.Cells[0];            string contact = contactName.Text;           int   id = Convert.ToInt32(contact);            TTshoppingBll.Sql_DelByNameAndPreID(id);
            }
        }
      

  5.   

    protected void gvDxxmwh_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
    string sBm = gvDxxmwh.DataKeys[e.RowIndex]["f_bzxmbm"].ToString();
    StringBuilder sb = new StringBuilder();
            sb.Append("begin ");
    sb.Append("delete from t_xmgl_jhmx where f_bzxmbm='" + sBm + "';");
     if (sb.Length > 6)
            {
                sb.Append("commit;end;");
            }
     bool isTrue = OracleHandler.ExecuteUpdateQuery(sb.ToString());
    DataBindDxxm(gvDxxmwh.PageIndex,-1);
    }
    直接写在这里面,gridview根本不会出现删除不掉最后一行的问题
    vs2003 datagrid有删除最后一行的问题,vs2005不会出现了
      

  6.   

    贴  发错了 位置我还以为是 DataGridView 
      

  7.   

    把DataGridView.AllowUserToAddRows = false