テーブルの詳細からのデータが表示されているデータリストがあり、正常に機能しています。次に、このデータリストの一部のデータを別のテーブルdetail2に挿入する必要があります。データリストの各rawに保存ボタンを指定して、この保存ボタンをクリックすると、そのrawストアの特定のデータがテーブル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」の値を取得して保存する必要があります。どこが間違っていたのかわからない。これで私を助けて