当前位置:编程学习 > C#/ASP.NET >>

System.NullReferenceException: 未将对象引用设置到对象的实例

   一直找不到原因:请帮忙看一下,谢谢

   前面的代码:

<table style="height: 214px" width="100%">
            <tr>
                <td colspan="3" align="left" background="images/titlebg.gif" style="HEIGHT: 31px">
                <img src="Images/tl_1.gif" border="0">    系统管理员列表</td>
            </tr>
            <tr>
                <td colspan="3">
                    <asp:GridView ID="GridView1"  runat="server" AutoGenerateColumns="False"  Width="100%" Height="134px"  >
                    <Columns>
                      <asp:TemplateField HeaderText="ID" Visible="False">
                        <ItemTemplate>
                         <asp:Label ID="label1" runat="server" Text="<%#Bind("AdminID")%>"></asp:Label>
                        </ItemTemplate>
                      </asp:TemplateField>
                      <asp:TemplateField HeaderText="管理员帐号">
                        <ItemTemplate>
                          <%# Eval("userName").ToString() %>
                        </ItemTemplate>
                      </asp:TemplateField>
                      <asp:BoundField DataField="password" HeaderText="管理员密码" />
                        <asp:TemplateField HeaderText="选择">
                                                            <ItemTemplate>
                                                            <asp:CheckBox  runat="server" ID="chk"/>
                                                            </ItemTemplate>
                                                            </asp:TemplateField>
                    </Columns>
                    
                    </asp:GridView>
                </td>
            </tr>
            <tr>
                <td colspan="3" style="height: 25px">
              
                                       
                    <asp:Button ID="btn_add" runat="server" Text="添 加" OnClick="btn_add_Click"  />
                                    
                    <asp:Button ID="btn_del" runat="server" Text="删 除" OnClick="btn_del_Click"  /></td>
            </tr>
            <tr>
                <td style="height: 22px" colspan="3" align="right">
                                    
                </td>
            </tr>
        </table>




后边的代码:


         protected void GetAdmin()
    {
        AdminSystem adminsystem = new AdminSystem();
        GridView1.DataSource = adminsystem.GetModel();
        GridView1.DataBind();
    }
    protected void btn_add_Click(object sender, EventArgs e)
    {
        Response.Redirect("Admin_Add.aspx");
    }
    protected void btn_del_Click(object sender, EventArgs e)
    {
        foreach (GridViewRow row in GridView1.Rows)
        {
            if (((CheckBox)row.FindControl("chk")).Checked)
            {
                int id = int.Parse(((Label)row.FindControl("id")).Text);
                this.Admin_Del(id);
            }
        }
    }
    //删除
        protected void GetAdmin()
    {
        AdminSystem adminsystem = new AdminSystem();
        GridView1.DataSource = adminsystem.GetModel();
        GridView1.DataBind();
    }
    protected void btn_add_Click(object sender, EventArgs e)
    {
        Response.Redirect("Admin_Add.aspx");
    }
    protected void btn_del_Click(object sender, EventArgs e)
    {
        foreach (GridViewRow row in GridView1.Rows)
        {
            if (((CheckBox)row.FindControl("chk")).Checked)
            {
                int id = int.Parse(((Label)row.FindControl("id")).Text);
                this.Admin_Del(id);
            }
        }
    }
    //删除
    protected void Admin_Del(int id)
    {
        AdminSystem Del = new AdminSystem();
        Del.Admin_Del(id);
        GetAdmin();
    } --------------------编程问答-------------------- 这种错通常是因为传值为空,很常见的错误
具体是哪行报错?指名一下! --------------------编程问答-------------------- //删除 
    protected void Admin_Del(int id) 
    { 
        AdminSystem Del = new AdminSystem(); 
        Del.Admin_Del(id); 
        //GetAdmin(); 
    }

把GetAmin()
放到
         foreach (GridViewRow row in GridView1.Rows) 
        { 
            if (((CheckBox)row.FindControl("chk")).Checked) 
            { 
                int id = int.Parse(((Label)row.FindControl("id")).Text); 
                this.Admin_Del(id); 
            } 
        } 
后面
--------------------编程问答--------------------   int id = int.Parse(((Label)row.FindControl("id")).Text); 

没找到叫id的label吧 --------------------编程问答--------------------  

是这一行   

int id = int.Parse(((Label)row.FindControl("id")).Text);  
--------------------编程问答-------------------- 那很可能是没有叫id的label --------------------编程问答-------------------- 或者是名为id的label的值为null这样就必错无疑了!
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,