gridview查找控件中的对象引用错误

时间:2017-07-08 10:47:27

标签: c# asp.net gridview

我收到的Object引用错误未设置为对象的实例。

错误发生在以下一行

cmd.Parameters.AddWithValue("empname", empname);

这就是我如何编写findcontrol的编码

    GridViewRow grdupd = grdemp.Rows[e.RowIndex];
    studentclass std = new studentclass();
    Label empid = (Label)grdupd.FindControl("lblempid");
    TextBox empname = (TextBox)grdupd.FindControl("txtname");

这是我的gridview

            <asp:TemplateField HeaderText="Employee Name">
                <ItemTemplate>
                    <asp:Label ID="lblname" runat="server" Text='<%#Eval("empname") %>'></asp:Label>
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:TextBox ID="txtname" runat="server" Text='<%#Eval("empname") %>'></asp:TextBox>
                </EditItemTemplate>
            </asp:TemplateField>

我的代码出了什么问题以及为什么我得到了null引用的错误以及为什么我无法将数据从gridview传递到后端

1 个答案:

答案 0 :(得分:0)

如果错误位于下面一行,那么你肯定没有声明SqlCommand对象说SqlCommand cmd = new SqlCommand(...),那么错误

cmd.Parameters.AddWithValue("empname", empname);

此外,正如斯蒂恩所评论的那样;您实际上是将TextBox控件添加为参数,而您应该使用Text属性来执行此操作,如

cmd.Parameters.AddWithValue("empname", empname.Text);