C#中的索引號是以0開始的
你說的第五列的索引號就應該是4,而不是5
aTextBox = (TextBox)(e.Item.Cells[5].Controls[0]);
                                -----ID =Convert.ToInt32(aTextBox.Text.ToString());//ToString多余
ID =Convert.ToInt32(aTextBox.Text)

解决方案 »

  1.   

    你可以这样写:
    TextBox subject1=(TextBox)e.Item.FindControl("txtSubject1");
    这样你就不用担心记错列了如果ID是关键字,你可以设置DataKeyFile = "ID",然后这样得到ID
    ID = DataGrid.DataKey[(int)e.Item.ItemIndex].ToString();这样你不用担心翻页后对不上行的问题。再有你写strSQL :改为
    Subject='"+subject.Text.Trim()+"',NewsKind='"+type.Text.Trim()+"+"',DeliverTime='"+delivertime.Text.Trim()+"+"'            where ID='"+ID+"'";