//数据源是自己写代码绑定的    
protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            SqlConnection conn = DB.createConnection();
            SqlCommand cmd = new SqlCommand("select experimentDepartID as 实验部门ID,edName as 实验部门名称 from experimentDepart      order by experimentDepartID", conn);
            conn.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            this.gvEdName.DataSource = sdr;
            this.gvEdName.DataBind();
            sdr.Close();
            conn.Close();
        }    }
//事件代码
protected void gvEdName_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        this.gvEdName.DataKeyNames = new string[] { "experimentDepartID" };
        int i = (int)this.gvEdName.DataKeys[e.RowIndex].Values[0];
        SqlConnection conn = DB.createConnection();
        conn.Open();
        SqlCommand cmd = new SqlCommand("delete from experimentDepart where experimentDepartID='" + i + "'", conn);
        SqlParameter para = new SqlParameter("@i", SqlDbType.TinyInt);
        para.Value = i;
        cmd.Parameters.Add(para);
        cmd.ExecuteNonQuery();
        this.gvEdName.DataBind();
        conn.Close();
    }
可是一点击删除按钮,就显示
“索引超出范围。必须为非负值并小于集合大小。
参数名: index ”请各位大侠帮忙解决下,是怎么回事。