我有一个数据列表,其中显示了来自表详细信息的数据,并且工作正常。现在我需要将此数据列表的一些数据插入另一个表detail2。我为数据列表的每个原始数据提供了一个保存按钮,以便单击此保存按钮时,该原始存储的特定数据到表 detail2。波纹管我的数据列表的设计。
<asp:DataList ID="drecord" runat="server" Font-Bold="false" Font-Names="times new roman" Font-Size="Small" DataKeyField="id" RepeatColumns="1">
<ItemTemplate>
<div><table>
<tr><td><asp:ImageButton ID="ImageButton1" runat="server" ImageUrl='<%# GetImageURL(Eval("Pic")) %>' PostBackUrl='<%# Eval("id", "qrystng.aspx?id={0}") %>'/><br />
<asp:LinkButton ID="Name1" runat="server" ForeColor="Blue" Text='<%#Container.DataItem("Name")%>'><br />
</asp:LinkButton><asp:Label ID="id" runat="server" Text='<%#Container.DataItem("id")%>'></asp:Label></td>
<td><asp:Button ID="insert" runat="server" BorderStyle="None" Font-Bold="true" Text="save" OnClick="saveinsert_click"/></td></tr>
</table></div>
</ItemTemplate>
</asp:DataList>
这个 onclick 事件 saveinsert 用于将数据插入到表 detail2 中。
Sub saveinsert(ByVal sender As Object, ByVal e As System.EventArgs)
Dim cmd As New SqlCommand("insert into detail2(serial,id) values('" & fid & "',@rid)", con)
cmd.Parameters.Add("@rid", SqlDbType.VarChar).Value = DirectCast(drecord.Controls(0).FindControl("id"), Label).Text
con.Open()
cmd.ExecuteNonQuery()
con.Close()
End sub
但是当我单击插入按钮时,它会出现“对象引用未设置为对象实例”的错误。异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例。
并在这一行显示错误“ cmd.Parameters.Add("@rid", SqlDbType.VarChar).Value = DirectCast(drecord.Controls(0).FindControl("id"), Label).Text "
数据列表正确显示记录。我需要将标签“id”的值存储起来。我不知道我哪里出错了。帮我解决这个问题