这是用C#写的一个asp.net网站,一个简单的更新~数据库链接的是Northwind的categories表,链接没有问题。前面也设置过了:GridView1.DataKeyNames = new string[] { "CategoryID" };但是一点更新,就会出现:索引超出范围。必须为非负值并小于集合大小。
参数名: index
问题已经找出来了,在红色的部分,这部分如果直接换成e.RowIndex+1就可以做,可是很奇怪为什么取不出gridview.DataKey的值,求问怎么改……  protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {  
        sqlcon = new SqlConnection(strCon);
        string sqlstr = "update Categories set CategoryName='"
            + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "',Description='"
            + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + "' where CategoryID='"
            + GridView1.DataKeys[e.RowIndex].Value.ToString()+ "'";
        sqlcom = new SqlCommand(sqlstr, sqlcon);
        sqlcon.Open();
        sqlcom.ExecuteNonQuery();
        sqlcon.Close();
        GridView1.EditIndex = -1;
        bind();
       
    }请求高手指点~