"指定的参数已超出有效值的范围"这个错误是指索引超出了数组最大范围,看看是不是你当前调用的索引值超出了你定义的数组的最大长度。
你上面的代码中,给gridview中的6个列绑定了字段值,如果你的gridview中一共只有6列的话,那么你调用的索引应该是从cell[0]至cell[5],而不是你上面写的从cell[1]至cell[6]。
string pr_id = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[0].Controls[0])).Text.ToString().Trim();
string pr_name = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim();
string ca_id = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim();
string pr_author = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim();
string pr_price = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString().Trim();
string pr_mark = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[5].Controls[0])).Text.ToString().Trim();
gridview的列是从零开始的,你看看是不是超出有效值的范围