我收到对象引用未设置为对象实例的错误。
错误出现在下一行
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);