我收到的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传递到后端
答案 0 :(得分:0)
如果错误位于下面一行,那么你肯定没有声明SqlCommand
对象说SqlCommand cmd = new SqlCommand(...)
,那么错误
cmd.Parameters.AddWithValue("empname", empname);
此外,正如斯蒂恩所评论的那样;您实际上是将TextBox
控件添加为参数,而您应该使用Text
属性来执行此操作,如
cmd.Parameters.AddWithValue("empname", empname.Text);