You cannot add or change a record because a related record is required in table 'lok"

Discussion in 'ASP .Net' started by André, Jun 25, 2006.

  1. André

    André Guest

    Hi,

    Still the same (unsolved problem), but other error now.
    I have a detailsview for inserting data, and a dropdownlist which
    selectedValue must be used to fill one of the field of the detailsview.
    Table 'pc' is related to table 'lok'.

    I tried a lot of things, but still without succes. Here are the two methods
    i tried with two different errors. It works only when i introduce directly a
    value in "DefaultValue" (see below)

    Thanks for any help
    André


    1) first method:
    asp:SqlDataSource ID="SqlDataSource1" runat="server" ....
    ....
    InsertCommand="INSERT INTO [pc] ([na], [ty], [lok]) VALUES (?, ?, @lok)"
    OldValuesParameterFormatString="original_{0}"
    ProviderName="System.Data.OleDb"
    <InsertParameters>
    <asp:parameter Name="na" Type="String" />
    <asp:parameter Name="ty" Type="String" />
    </InsertParameters>
    .....
    Code-behind:
    Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object,
    ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
    lok = DropDownList1.SelectedValue
    SqlDataSource1.InsertParameters.Add("lok", lokl)
    End Sub

    This gives: No value given for one or more required parameters
    ----------------------------------------------------------------------------
    -------------------------
    2) second method
    asp:SqlDataSource ID="SqlDataSource1" runat="server" ....
    ....
    InsertCommand="INSERT INTO [pc] ([na], [ty], [lok]) VALUES (?, ?, @lok)"
    OldValuesParameterFormatString="original_{0}"
    ProviderName="System.Data.OleDb"
    <InsertParameters>
    <asp:parameter Name="na" Type="String" />
    <asp:parameter Name="ty" Type="String" />
    <asp:parameter Name="lok" Type="String" DefaultValue="<%=lok %>" />
    </InsertParameters>
    ....

    Code-behind:
    Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object,
    ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
    lok = DropDownList1.SelectedValue
    End Sub

    This gives: You cannot add or change a record because a related record is
    required in table 'lokl'
    which means in fact that the value of the parameter is not passed!

    It works when i give directly a value: <asp:parameter Name="lok"
    Type="String" DefaultValue="1-45" />
    André, Jun 25, 2006
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.

Share This Page