--------------------------------------------------------------------------------指定的转换无效。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidCastException: 指定的转换无效。源错误: 
行 201: //for(int i = 2;i<=NumCols-2;i++)
行 202: //{
行 203: TextBox CurrentTb= (TextBox)e.Item.Cells[2].Controls[0];
行 204: string ColValue = CurrentTb.Text;
行 205: cmm.Connection.Open();
 源文件: c:\inetpub\wwwroot\webtest\webform1.aspx.cs    行: 203

解决方案 »

  1.   

    1、cells后面跟的index值看看有没有错,你写的是2表示第3列;
    2、Controls后面的index值看看有没有错,你确保是第1个吗?一般会有一个隐藏的Label,注意!
    3、我一般都用模板列,这样就很简单了:
    TextBox currentTb=(TextBox)e.Item.FindControl("模板列中的那个TextBox的名称");
    ...
    这样可以避免你将来万一增了一列或者什么的,而要去修改Cells后面的值。而且更直观。
      

  2.   

    一般都用e.item.cells[按钮行序数].findcontrol[textbox name]
      

  3.   

    那么e.item.cells[按钮行序数].findcontrol[textbox name]这句是不是写在edit_command事件中的,edit_command这个事件是不是用户按下编辑后执行的事件