Cells的索引是不是从0 开始的,第Cells[0]是什么内容? 可以查一查。  
你的gridview是不是一共10列,而第10列是更新按钮??
我估计“无法将类型为“System.Web.UI.WebControls.Button”的对象强制转换为类型“System.Web.UI.WebControls.TextBox”。”这个错误是指的cells[9]!

解决方案 »

  1.   

    就你的程序
    Cells[1]改成Cells[0], Cells[2]改为Cells[1]..., Cells[9]改为Cells[8],单元格的索引是从0开始计算的
      

  2.   

    不过你的程序存在如下问题1. 用拼接字符串去执行SQL语句就是很不好的习惯
    2. 一般使用TemplateField而不是BoundField,这样可以避免楼主这种找控件的方法
      

  3.   

    5555555,大哥,我试了,按照你的方法,系统就会出现2楼那图的错误,系统提示的是指定的参数已超出有效值的范围。
    参数名: index55555555555该怎么办啊
      

  4.   

    你改成楼上的这样的代码了吗,你试试看!
    另外,你注意(TextBox)(GridView1.Rows[e.RowIndex].Cells[0].Controls[0])).Text.ToString().Trim()
    在9列中第一个控件都是TextBox。
      

  5.   

    你有按钮列,Cells应该从索引2开始,确认一下吧。
      

  6.   

    你什么时候学会使用templateField,你就不会再问这样的问题了
      

  7.   

    Cell的索引错了  要是有9列的话   最后一列应该是Cell[8]  第一列是Cell[0], 
    没有第十列,你的Cell[9]当然找不到东西了,所以才说超出了。
      

  8.   

    你前面有一个删除与编辑按钮,应该从cell[2]开始是你的学号吧