估计是Datagrid_student.DataKeys[(int)e.Item.ItemIndex];中的e.Item.ItemIndex有问题,你在VS中单步调试一下看看e.Item.ItemIndex这个值是多少

解决方案 »

  1.   

    我调试的值是正数啊!会不会是DataDrid哪里要设置
      

  2.   

    行 92:  commnd.Parameters["@sid"].Value=Datagrid_student.DataKeys[(int)e.Item.ItemIndex];
    ===============================================你设置DataGrid的DataKeyField属性了吗?
      

  3.   

    那再看看Datagrid的主键列设置了没?主键列设置方式例如下面的DataKeyNames="Id":<asp:GridView ID="Gridview1" AutoGenerateColumns="False" runat="server" DataKeyNames="Id" >
        <Columns>                        
           <asp:BoundField DataField="Name" HeaderText="姓名" />
           <asp:BoundField DataField="LoginId" HeaderText="帐号" />
            //在此定义你想要显示的列,要隐藏的列不定义                
        </Columns>
    </asp:GridView>