网格视图查找控件中的对象引用错误



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

错误出现在下一行

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");

这是我的网格视图

<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 传递到后端

如果错误如您所说在以下行,那么您肯定没有声明SqlCommand对象说SqlCommand cmd = new SqlCommand(...)因此错误

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

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

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

相关内容

  • 没有找到相关文章

最新更新