DataGrid1_DeleteCommand中的代码为
string id=this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString();

   string sql="delete  mulu where id='"+id+"'";
   SqlCommand cmd=new SqlCommand(sql,conn);
   conn.Open();
   cmd.ExecuteNonQuery();
   this.DataGrid1.EditItemIndex=-1;
   this.DataBind();
为什么我无法删除一行呢,这段代码错了吗?????????????????

解决方案 »

  1.   

    索引超出范围。必须为非负值并小于集合大小。参数名: index 我出现了这个错误 为什么呢??
      

  2.   

    this.DataGrid1.CurrentPageIndex = 0; 
      

  3.   

    索引超出范围。必须为非负值并小于集合大小。参数名: index 我出现了这个错误 
    string id=this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
      

  4.   

    this.DataGrid1.EditItemIndex=0; 
    this.DataBind();
    因为你最后一行删掉以后就没有数据了,所以EditItemIndex此时等于-1而出错
      

  5.   

    哎 都不多 都找不出错误 string id=this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString();这句话在调试的时候string id=null 是否这里出了问题
      

  6.   

    这个值返回在你的Grid里面存在不?
    e.Item.ItemIndex.
    可能是不存在,所以找不到。不能删除。
      

  7.   

    e.Item.ItemIndex. 
    可以找到的
      

  8.   

    string id=this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString(); 换为e.RowIndex
      

  9.   

    string id=this.DataGrid1.[e.Item.ItemIndex].DataKeysToString();  
    为什么.[e.Item.ItemIndex].可以找到 但是 string id是null 呢